MZ@ !L!This program cannot be run in DOS mode. $PEL7N! aa b@ @bb@daWb b a  H.texta a `.rsrcba@@.reloc ba@BaHD[l  YP _zFסMn8h-PeMݽ?gk(ƚ~!q W ۀ%O9lW 6]*.V*:iu_MyGM΄U0{: :s; }: {: (< o= (>  oT (U *0ZuM  (V ,G,DoW (S 6oX (Y ,!{Z -s[ }Z {Z (\ *,+{Z ,#{Z (E (] {Z o^ }Z (_ *05uM (V ,$,!(S 6 rsps**"(c *0H(d (V -*(e (@ of t ,og -(@ oh *0o(i (V -*oj ok  oj ol 8* om tE rsp(Y ,}(S 6(e (@ of t ,U og -Mн(@ D   on  oo op   sb  (q oh or B(@ of tB,goz,^or (@ of tos ~t os 3/op   ~u  ~ (q oh Xi?*Z(v }w }x *0 sy (z ({ {x o)o| ,,j(z o} u(~ ,R(@ ( ,@( rp {x o( (U rprps o &*0 {w o oT (z ({ {x o)o| ,H(z o} u (~ -.( rp(U ( &.{x o,,1(z ({ {x o+o| , (z o (+-o &(7rpo ( -A( rp{w o oT rp(U ( &}soo( , oy-)( rCp(U ( &+(+-o (   ,  o-)( rCp(U ( &(z ({ {x o*o|   ,\ (z o} u  (~ - +:  +  %X (  {w ( - (z o o,o, o, {w ( ,qo,h( 9( rp(U ( 3g,&( rZp(U o( +3,&( rp(U o ( ,o,ooo( R( rpo oT o ( o (U ( &*ALo)2@TTRp0s 8(@ ( u888q88-D( rp {w o oT 8(@ oT (U ( &**"( *6rp( *0 s o}ow+o so o -ݾu2,o o 9o9o-o~Q(C-wo~O(B,o( - os*o,Coow+o  so o -u2,o o =K*$7!0{ s oow +B o s o,,o~P(C-o( - so o - u2,o o *N`0o ( 8 9o9oo ( 9oovi3t  oow +9 o so,o %X o ( - +  o - u2  , o -Xi?>**fFBo +.o *0,og-( *ok~Z(c,,o -*ooo .*olo ( *ok~[(c,o -*olo ( *on( ( *0{w o ~W{w o ( ~To o +)  o o ( o&X i2(@ o r&po&(@ o r&po&*0V,o-*{w o o-*o~T(N,* oow +9 o s o, o%X o ( , o - u2  , o oow +q o so,Vo(~ -or(po +`o(~ -or<po +`,-  o - u2  , o ,***FF~20u,o-*o~To {w o oow+)o s o, %X o oo -u2  , o oow +q o so,Vo(~ -or(po +`o(~ -or<po +`,-  o - u2  , o -!(@ o r&po&-!(@ o r&po&*96o~0H,o-rVprnps zos o,ooo*o*0os o,o*6( ( } 6( } *{ *0Q{ -B( ,{ ( 6o } +{ ( 6o } { *{ *"} *( -( 6.{ o **( ,( 63*{ o * *n| 6} } *J( o ( *0( o ( *0Go E o   +o .  X i2,s *2( o *2( o *2( o *2( o *2( o *2( o *6( o *6( o *2( o *6( o *Z( } ( *0go rp(Y ,Mop { o> ( ,5{ o ,(op  { o s (q *( *( *( *( *&(J*"(I*&(K*:( }*V( }}*r( }}}*~o rpo %-&~ t*Jo rpo *0"(e 3(@ of t3 o*{*{*6(U{*{-o rp( }{*{*0F{-7o ,/L(@ o Lrp( (Q o }{*{-$o ( }{- ( s z*0/( ,*o +o ,*o -*:( (%*( ( (UoP,(RoZ( o o ** *0&oP,(Ro (~ -oY**08o -*( s oNo s o_o *0Bo -*s (> ("o oLo 1oLs o * 04}(!}oP,rp(Ro *0{ }(&*"}*"o *&o[*o\*o`*"oa*oP*"oY*oZ*R(Jrp( **(J*01 o - +( ,( o +  & ***( *"( *j{- s }{*j{- s }{*o r:po %-&*^o r:po *rp*{*"}*0Sr&p  +91 rVp( (oo (Q ( o ( X (oo 2*(O*{rZp(> oT rp( o *0Hrp( s }{rZp(> oT rp( o o ( * 0(X&}* n{- s o ( *f}o o o  *&.(j*.(@ *~o rpo %-&~ t*Jo rpo *(O*~o rpo %-&~ t*Jo rpo *(O*~o rpo %-&~ t*Jo rpo *(O*~o r"po %-&~ t*Jo r"po *(O*0+(>  o  +uy - o  -- r6ps  z + (@ ( , +o (@ ( - ,o~((+>o~rp( ((o~rp( ((o +4(@ ( - (@ ( ,+o (@ ( -, ((*6rp(*6rp(*0o (mo rprp( o o 1Qrp( r&p (l,{,{o  +( o o , ( , *rp(o rpr&po ( *N(}(oo *(*Nrp((z*(*0go o +7 o tM o> o , u 4( , u o - u2,o ** COr&p}r&p}} (J*01 o - +( ,( o +  & ***{ *"} *{*"}*{*"}*j{!- s }!{!*0rp  81 rp( r p( r0p(o oYr0p( r4p( r0p(o o[o r0p( rNp( X (o ?nrRp( *j{"- s }"{"*0rp  81 rp( r p( r0p(o oYr0p( r4p( r0p(o o[o r0p( rVp( rNp( X (o ?brRp( *{#r|p(> oT rp( o *{#r|p(> oT rp( o *Nrp( (*0 o s *0rp( s }#( (:rps }{o  rprpo! {o  rprpo! {o  rprpo! {o  r0prpo! {o  rHprZpo! o {o" *0!(X{9{- (# o$ +{ ,o 1{o% o& o' ao( o 1&{o%  o' ao( o) o* ao( o 1'{o%  o* ao( o) {o  r`p{o o! o' o+ *B(-( *0@(_rp{o o rfp(o, rp(o, *>(- }$*{$o$ }#rpo. 'rpo. rpo. *(*Jrp}((*{(*"}(*{%*"}%*j{'- s }'{'*0`"((o -%o o (@ r po ({%,s/ {%o (o0 *0#rv ps }&{&o% r~ po) rv ps o  r p(o! {&o o"  +o (o1 o" X (o2 2o {&o" (  *{&o  r`p{&o o! (*z(r p{&o o *0$s6  8"s7 o8 o9 & 8s: o#  r po) o#  r po) o# r po) o# r pr p~) ( o; o< r pr p~) r p( o! o= o> &rv ps o%  r po) o%  r po) o% r" pr6 po; o o" X ~)i?X ~)i?o< r> prpo! o< rL prd po! o< rh prpo! o# r pr po; (o0 (*0 % A  r pr pr pr pr pr pr pr pr p r p r p r p r p r pr* pr8 prF prT prb prp pr~ p r pr pr pr pr pr pr pr pr p r p r p r p r p r pr& pr4 prB prP pr^ prl prz p r p r p r p r p r p r p r p r p r p  r p  r p  r p  r p  r" p r0 p r> p rL p r p rZ p rh p rv p r pr pr pr pr pr pr pr pr p r p r p rp rp rpr,pr:prHprVprdprrprpr prpr prprprprprprp rp rp r p rp r(pr6prDprRpr`prnpr|prpr prpr prprprprprprp rp rp rp r$p r2pr@prNpr\prjprxprprpr prpr prprprprprprp rp rp r p r.p r<prJprprXprfprtprprpr pr pr prprprprprprp rp rp rp rp r*pr8prFprTprbprppr~prp  r p rp r p rp rp rp rp rp rp  rp  rp  r p  rp  r&p r4p rBp rPp r^p rlp rzp rp    r p rp r p rp rp rp r p rp rp  rp  rp  rp  rp  rp r"p r0p r>p rLp rZp rhp rvp    r p rp r p rp rp rp rp rp rp  rp  rp  rp  rp  rp rp rp r,p r:p rHp rVp rdp    r p rrp r p rp rp rp rp rp rp  rp  rp  rp  rp  r p rp rrp r(p r6p rDp rRp rp )*(*(@ *"(A *0)&{-  (B tM |-(+ 3*0)&{-  (D tM |-(+ 3* *0"(e 3(@ of t3 o*^{.,*r`p(+*6r`p(+*{+*6rp(+*o- rppsE zrp(+*R}.(F (G *0@'s (> ((#o ( (~ - s o *0o( {*oH ,{*oI +N( o +o o ---sD ooF , {*oJ *"(*6(X (*0"rpr&p(+ (~ -*o *6rp(+*0"( ,o *0! (Q rp oW (U *(,(&o sK oL ( *(*r{,-(( (%*0,)sM (oN o o" oW (*0i)(,@((~ -3o (o tZ ,oO (~ - oO ({/,{/~P oQ },*0)*{/  (B t[ |/(+ 3*0)*{/  (D t[ |/(+ 3*ro , o oR (S *(T (,(o ,(*Z{-, {-o_** 0}+(!}+*0J+(,o -*ooo sU ooO sV *F(,(**0G)(,> ((~ , ( +o (o tZ , (oW *(-o (( **&o*0,-*o} 9oY ,=or (@ of t ,oZ -~0o ( + -9o\ o] -o\ o^ + ,<o\ u(@ ( ,u(_ +o` (Q oa o\ (@ ( ,(or (@ of ,t(b +**j{3- s}3{3* *{2*"}2*Frpr&p(+*6rp(+*{1*"}1*(*.,o> &*0- ({ oc +}o tE or g(@ of ,Zo} , oY -H ,C( r.p (> o( o oW (U o sd zo :xu2,o *&o&*o o -*o o 8*No 8o *6r&p(+*&(+*&( +*&( +*&(+*&(+*"o *0. rp0*Jse }*(f *B{4%-&~ *,({4(i ,}4{4(*0O/(~ ,* +oj (k , X o 2 ol 2 Xom on *f(o ,{4(~ **jP-r&p(+(QP*vQP-~ +Po( (+*00-*orpop ,A(~ -9 o +o  , o % ,,orpo oq oor +os  (o - ,o *f (*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*>((~ *Frpr&p(+*6rp(+*6rFp(+*6rFp(+*0k(((~ ,'((~ ,((~ , ((~ -0((~ , rnpsu z((~ , rpsu z*(*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*6r$p( +*6r$p( +*6r4p( +*6r4p( +*6rDp( +*6rDp( +*6rVp( +*6rVp( +*6rlp( +*6rlp( +*J|5r~p(*N|5r~p(*J|6rp(*N|6rp(*({5({6(*( *2u(_ *0/1F (} -*(~ ( rp( *02s =s >s ?s @( u(@ ~A-*s A~Ao ~B-+s B~B ( e(@ o ( F(@ o *~@*0l3- rps z- rps z-uX-u ({ oc 8~o tE   or o 8o t  o>   B(@ ( ,  uB 8 ](@ ( ,  u] 8 7(@ ( ,  u7+v (@ ( ,  u+X (@ ( ,  u+: (@ ( ,  u+ о(@ ( ,  uo : u2,o o  ,oz- 9% o1 9,o(~ - o oY -o +  9 o} 9 ,"o\ (@ ( , rpsE zo\ o] :o\ o^ :~@o\ o -O~@o +(( o\ ( oA , ( + ( -Lo , o +$,o{-o` (Q oa ,,toB ,,to  , to 8,4 -,toB  ,  o  to +v,[ -,toB  ,0 u,oo 1 o+  o  to + ,  o  o, o :vu2,o o> o +h(@ (B t,?o,6uM,8o o o &rpo o, *Xi2*ALsq[5A"(#*04s (( ('*Jo> s ()*0t5o o ($o 8;o - rps  z o o +-o tM u,o o , + o -u2  , o 9s o o  rprpo! o  rprpo! o o" o ( - ( sE zo ,To> r p  r8p  rp  rp  r4 p ( ( o : ,o *A4C:}Ng 06o> s o uQ r> po t rH po tRrR po tu,oC, oD o   (D , o s z o   (@ (B t  , o, i i. o s zi  ++ ,     o (Q (  X   i2  o 5u , o o o r^ po ( s -0rb po ,,oC,#rR poEo +rp po o *s+5p0?7o s o +o (2o o - ,o * 3 0/o o( *R|I{I( *0 8o , r| psE z-~=o ,*o  ~?%  ( -~=o :s s (@ o  + t o X i2~C-,s C~Co o +)( o( , o((o ( -Zo s 8, ( -x3(@ ( iY+Jt3 ooX(1 o - o -  o Xi2o ( ,(@ ( :R~D--s D~Do o - ~=o   , ( o & *AL62  /0/o o( *R|I{I( *09o , r| psE z~>o ,*o ~?%( ~>o ,Ls s (@ o +t  o Xi2~E-.s E~Eo o +,( o( ,o()o ( -Zo s +h(@ ( iY+1t  o oXs1o Xi2o ( ,(@ ( :x~F-/s F~Fo o +-(  o o  {H {Go o ( -]o ( s  s  o +'(    o -  o   o ( -^o  s ~>o ,( o &*A|9: 24f/^ ,m{H( -{Ho o *r&p*Z}G}H}I*0 :s (0o {Go *02;  {G{Go ,(0(0o **R  o *^  o *b(0o {Go a*~J( ,r p( J~J*~K( ,rK!p( K~K*~L( ,r!p( L~L*~M( ,,(7r"po M~M( , r"psE z~M*{N*"}N*"(>*( (:o - u-+}N*2{N*0=<u" (B,*{N- {N*{N-*(?o?*0/{N,(? ( **f( ,( *o *.(B*s>Os>Ps>Q*~R( ,,(7r#po R~R( , r#psE z~R*{S*"}S*"(I*( (Eo - u-+}S*2{S*0==u# (M,*{S- {S*{S-*(JoJ*0/{S,(J ( **f( ,( *o *.(M*FsIT*~U( ,,(7r$po U~U( , r%psE z~U*{V*"}V*"(T*( (Po - u-+}V*2{V*0=>u$ (X,*{V- {V*{V-*(UoU*0/{V,(U ( **f( ,( *o *.(X*V sTW*~X( ,,(7r&po X~X( , rB&psE z~X*{Y*"}Y*"(_*( ([o - u-+}Y*2{Y*0=?u% (c,*{Y- {Y*{Y-*(`o`*0/{Y,(` ( **f( ,( *o *.(c*s_Zs_[*~\( ,,(7rK'po \~\( , rq'psE z~\*{]*"}]*"(j*z( (fo -+}]*0-@(frz(po {]o -*s_*0-@(fr(po {]o -*sj*(fr(po {]-+ogo *(fr(po {]o t*(fr(po {]o *(fr(po {]o *~^( ,,(7r(po ^~^( , r(psE z~^*{_*"}_*"(u*z( (qo -+}_*(qr)po {_o *0(@(qr*poC {_o t3*~`( ,,(8r*po `~`( , rO*psE z~`*{a*"}a*"(|*z( (xo -+}a*0-@(xrf+po {ao -*su*~b( ,,(8r+po b~b( , r+psE z~b*{c*"}c*"(*z( (~o -+}c*(~r,po {co t*(~r,po {co *(~r,po {co t*0-@(~r,po {co -*s>*(~r,po {co *0-@(~r,po {co -*su*~d( ,,(8r -po d~d( , r5-psE z~d*{e*"}e*"(*z( (o -+}e*0-@(r,po {eo -*su*0mA(rD.poC {e (Y-+oQ(N-+oFo -*s*~f( ,,(8r\.po f~f( , r.psE z~f*{g*"}g*"(*z( (o -+}g*0-@(r,po {go -*su*0-@(r/po {go -*sj*(r/po {g-+ogo *0-@(r/po {go -*su*0-@(r/po {go -*sI*(r/po {g(N-+oFo *(r/po {go *(r/po {go *0-@(r/po {go -*su*0;A(r/poC {g o -*s*0;A(r0poC {g o -*s*~h( ,,(8r)0po h~h( , rY0psE z~h*{i*"}i*"(*z( (o -+}i*(r,po {io t*(r,po {io *0-@(r/po {io -*sj*(r/po {i-+ogo *~j( ,,(8rp1po j~j( , r1psE z~j*{k*"}k*"(*z( (o -+}k*(r,po {ko t*(r,po {ko *~l( ,,(8r2po l~l( , r2psE z~l*{m*"}m*"(*z( (o -+}m*0-@(r3po {mo -*s*0-@(r3po {mo -*s*~n( ,,(7r 4po n~n( , r24psE z~n*{o*"}o*"(*z( (o -+}o*(r;5po {oo *01 (rI5poC {o o &*(rS5poC {oo &*~p( ,,(7r_5po p~p( , r5psE z~p*{q*"}q*"(*z( (o -+}q*0-@(r6po {qo -*s*~r( ,,(7r6po r~r( , r6psE z~r*{s*"}s*"(*z( (o -+}s*(r7po {so *0-@(r7po {so -*s|*~t( ,,(9r7po t~t( , r)8psE z~t*{u*"}u*"(*z( (o -+}u*0-@(r6po {uo -*s*(rX9poC {uo &*(rb9poC {uo &*{w*"}w*{x*"}x*{v*"}v*( *:( }w*0_( ( , rp9ps z- r9ps zo .o . o rp( (}w*v(- r9ps z(*R(- (**~ }}~ }~~ }}( *0L~ }}~ }~~ }}( }}}~}}*{}*{~*{*{*:((*r9p(+%-.&(o - o o 7(@ r9po *r&p*6r9p(+*r(:p(+%-.&(o - o o 7(@ rD:po *r&p*6r(:p(+*Frz:p~ (+*6rz:p(+*Fr:p~ (+*6r:p(+*6r:p(+*6r:p(+*Fr:p~ (+*6r:p(+*J|r~p(*N|r~p(*J|rp(*N|rp(*0OB(u ,o - r:p(+ r&p(({({(*"( * *0#CD Ї(@ Ј(@ *{, {o*{, r:psE z{*"}*n{, {o*{*"}*n{, {o*{*"}*n{, {o*{*{*v5}( }}*&(*0D5}( }-0(Q r2;p r@;p(U oN +%(Q rJ;p r@;p(U oN (# r^;pr|;po; }*Z(}}*0Eu! ,s` ( **(*(*:((*6r;p( +*6r;p( +*0Fr;p`(+*6r;p(+*Fr;pr;p(+*6r;p(+*0Fr;p`(+*6r;p(+*6r;p(+*6r;p(+*Fr;p~ (+*6r;p(+*Fr$<p~ (+*6r$<p(+*}<}}}( *0wG(  s oW rP<p( oN o o" s" }{oW rh<p( oN {oW o o {o" *0H( o (sL  ( ( (Q r<p(Q ( (U oI f(Q ( oK {, {o {oH o$ {r&poo ( {l( eo ( (" o (! o o o oJ o *jo ({TJ*0 I(*0)J ~% ( ~s ,( * 0'K ~% ( ~o ,( * 0L{@o o - }o ( o e ( ( , }ݕ ~%  ( o o o  + j( ~ o -~ o {el( ~o  o   + o  ( ,X o - , o ~o  Y2~o  o +o (Y ,Xo - ,o {/ }݁  , ( o (!o t o o  o t o o  o  {o(i , }} &}*Ad' #&I Zm  0! (Q r<p o (U *0! (Q r<p o (U *0* (Q r<p o (U *0)M{  (B t, |(+ 3*0)M{  (D t, |(+ 3*{*"}*{*"}*{*"}*.s *&(j*j{- s }{*~ *~ * *0Nr&=ps r0=ps o  r pr:=po! r=poN o r=p(xr=p( s o" o o" r=ps o  r pr=po! r=poN o.(~ -o%  o.o) (t,o  rHprZpo! o o" o0,So r=po/r>pr>p(xr8>p( s o"  +ho r=p(- o o5r>p(- o o7r8>p( s o" X (-o 2o o" *0Oo s3 *"(- *( r prL>po rd>prr>po *{*"}*{*"}*vr&p}r&p}( *Nr|>p((z*(*(*Nr>p((z*(<*N(,(oo *(?*Nr>p((z*(<*Nr>p((z*(<*R~ }(J*V~ }(J*01 o - +( ,( o +  & ***j{- s }{*{*"}*R(Er>po *N(Er>po *{*"}*j{- s }{*0."( {,s/ {o (Oo0 *04/ +o (Oo1 o" X (Oo2 2(  *Rr&p}(L*Nr&p}(L*{*"}*0Pr0=ps s6 o< r> prpo! o< rL prpo! o< rh prpo! s7 o8 o9 &s: o= o> & o o r(?po (Ts o o" o o" (Oo0 (Q*Jr&p}( *r&p}( }}*{*"}*{*"}*( *0M-rj?prz?ps zr?po r@p( o o> o rAp( ( *:((*6r5Ap(+*6r5Ap(+*FrGAp ( +*6rGAp( +*6rmAp(+*6rmAp(+*:rAp( +*6rAp( +*0&/((~ -((Q ( -**N(Q ( (*6rAp(+*6rAp(+*6rAp(+*6rAp(+*FrBp~ (+*6rBp(+*FrBp~ (+*6rBp(+*FrMBp~ (+*6rMBp(+*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}**(  (y ,((rmBpo *:( (%*0Q( ( (x Ef+k( ,ao! 1Xo" o9 (~%-&of ((|%-&oh (}(%-&on (+( {o# {o$ *0GR(x E*(z(~ ,#rBps z((~ , rBps z*o o s% }o {o" (*0R(x E,+R(- s((-6s(+((- s((- s((- s({(o& {(o' {(o( {(o) *0SrBp(z((((* o o+ o, tf -Ys (z(((o & /o o+ ( (l( ~- o. * *l!0Tr7Cp(((/ o o+ o, tf -Ms ((o & /o o+ ( (l( ~- o. * *<Q0U(0 (1 (2 #?4rgCp*(3 (4 #@4rCp(2 (4 )(5 *(6 (4 #@4rCp(3 (4 )(5 *rCp(6 (4 )(5 *0VrCp s7 rDpo8 *:( }*0%Ws: sK o; o o" *0FXt o t, o< t rDpo7(o5((/ o= *:( }*0Yrv ps o  r preEpo! o o" s> {oo?  o o" rEps o {o~s o" o o" rEps o {o|s o" o o" rEps o  r prEpo! o% rEprEpo o o" s@ rEpoN o o" rv ps {o o {o> rFpo o  r pr1Fpo! o s>   o?  o" o o" *:( }*0%Ws: sK o; o o" *0LXt o t, o< t r[Fpo9on o7o5((A o= *:( }*0fZrv ps o  r preEpo! o o" rEps o {o~s o" o o" rEps o {o|s o" o o" rEps o% rEprEpo o  r prEpo! o o" s@ rEpoN o o" rv ps {o o {o> rFpo o  r pr1Fpo! o s> o? o" o o" *Zo rGps o" *( *0:- rTGps zu-Й(@ o( rfGpsd z(C *6(D t*(E *(F *( *( }sK }{{oG *0 [s *NrGp}}*>}}*({-#sK }o {oG *V{, {(*0UW{-o ( (oH *s: rGpoN {o o" {( oH *Fr Hpr&p(+*6r Hp(+*Frpr&p(+*6rp(+*Fr.Hpr&p(+*6r.Hp(+*FrLHpr&p(+*6rLHp(+*6rlp(+*6rlp(+*6r$p( +*6r$p( +*6r4p( +*6r4p( +*J|r~p(*N|r~p(*J|rp(*N|rp(*({({(*(I *(K *0,\{-}o , ( }{*(, (oL -(M *(*(N (, (oL -*o (*(O (, (oL -*(*(, (oL -(P *b(@ (*(Q *o *( *"(R *NrfHp((z*(<*NrzHp((z*(<*( *:( }*{**{*ss~*(@ ( ,r&p*(S *(T *{*V( }}*( *J{4o (Y *0](({ {9{i>sU  8`sV   oV }4 {4or B(@ of tB 9  {4or h(@ of th9o9{ W sW (+@ {4or (@ of t {4or (@ of ,Aog -8i(@ oY D  oZ  oo sb   {4op  {4  ~t   (q }4 {4o[ X o ?o\ s *2((e *2((] *2((R *2((^ *2((_ *2((` *6((a *6((b *2((c *2(({ *(*J|rHp(*N|rHp(*J|rHp(*N|rHp(*J|rHp(*N|rHp(*J|rHp(*N|rHp(*J|rHp(*N|rHp(*J|rIp(*N|rIp(*0P({({({({({({(*(*(d *NrIp((z*(*Nr4Ip((z*(<*NrLIp((z*(<*NrfIp((z*(<*NrxIp((z*(*&(j*{*"}*j{- s }{*0."(y{,s/ {o ( o0 *04/ +o ( o1 o" X ( o2 2(  *N( (oo **(J*01 o - +( ,( o +  & ***o rIpo %-&*^o rIpo *j{- sf }{*"}*0Fr&p  +,1 rVp( (og o ( X (oh 2*(O*~o rIpo %-&r&pt*0Y^( o 1Go Yo rIp(i ,rIp(i , rIp( o rIpo *0#V(i rIps7 r&po8 *0_ 8o (og o" (-W(-O(og oq-(og o# r~ po) +(og o# (rJpo)  +&o (og opo1 o" X (og opo2 2X (oh ?2*0`(X&} +ko oj u ,R(-0oq-o# r~ po) +.o# (rJpo) +o# ok o# (ok X o ol 2* n{- s o ( *0D`o o o   + o oj u ,o|X o ol 2*(* *01a(E u}sm sn {oo o( *r&p* *(p *"( *0CD Ш(@ Щ(@ М(@ Н(@ О(@ П(@ Р(@ С(@ Т(@  Ф(@  У(@  Х(@  Ц(@  Ч(@ й(@ Ь(@ Э(@ Ы(@ б(@ а(@ в(@ Я(@ е(@ г(@ д(@ ж(@ и(@ з(@ к(@ * *{*{ *{!*{"*>{"(~ *.(.*( }} }!}"*(q *(r *{6*"}6*{7*"}7*{8*"}8*( *(s *(t *0!bs; (u o= sXoG &*(E *(A,(A(E o} t**0/c~@(Bq{A (E ({ o| *0,d(v r&Jpow ,+ ~@i2 *^(v r&Jpox *n~@(Bq{A*(@*2(E t*0"e(D(F(Dsy oz *0f({ {?-}s| }?~@+^q {As} {A(F{Asy {Boz  o~ {?o &Xi2{?o * *0,g(?(@(A(GsW (Do *0Gh~ (E,7( t s r>Jp(Boh o ( *0!i~ (Jo & s (@-W(Q rZJp ( (_ ( (_ (FoW ~  (U o &8s (Q r3Mp (Do (Fo ~ ( (_ ( (_ (FoW (Fo> oT (U o &oF o( *0Dju ,2oS ,((E oN К(@ oO t ( *( *02rUp~@(Bq{ArUp( ( *^rUpo ( ( *0kku -*(E oN К(@ oO t ( r Vpo oVoUo o , o oT*?Y 0l rLVpsRrfVpsRrVpsRrVpsRrVpsRrVpsR@*>}A}B*{C*"}C*{D*{E*( }C}D}E( *RoE (v }F*2{FoD*( *N{A{5(Y *0@msX  }5~@Y s (+ . {FoC{Fo *0:n~@i  +~@q{AX i2s * * *( *FrWpr&p(+*6rWp(+*(*( *( *{X*"}X*{Y*"}Y*{Z*"}Z*{[*"}[*( *Nr&Wp((z*(*{\*0Co}\(l-3o  (oo> ( -(p{\o0 *}\*{]*"}]*0D(_(o,(l-rBWp(oo o r\Wp(qo, *:}](<*NrpWp((z*0po sx *(t*"(- *f( rWprWpo *{^*"}^*N(ys(p*0Dq(zo 1.(l-&o  (zo u , o o (u*0Uq(s(zo 1?(l-7o  (zo u ,rWpo o *rWpsu z*Jr&p}^(w*(*NrXp((z*(<*o*( *r,Xp*(*r6Xp*(*rDXp*(*rXXp*rtXp*(*rXp*rXp*(*rXp*rXp*(*rXp*rYp*(*r Yp*r:Yp*(*rVYp*rrYp*(*rYp*rYp*(*rYp*rYp*(*rZp*r6Zp*(*rbZp*(*rlZp*(*rvZp*rZp*(*rZp*rZp*(*rZp*rZp*(*rZp*rZp*(*rZp*rZp*(*rZp*r[p*(*r&[p*r&[p*(*r0[p*r0[p*(*r8[p*r8[p*(*rD[p*rV[p*(*rj[p*r|[p*(*r[p*r[p*(*r[p*r[p*(*r[p*r[p*(*r \p*r \p*(*r0\p*rJ\p*(*rf\p*r;p*(*&.( *{_*"}_*{`*"}`*{a*"}a*{b*"}b*{c*"}c*( (((((o *0rr\ps ((o &( - P( r\po &`o &(~ -r\po &o &+A(,9(fo( o ( 3r\p r\p( o &,$r\po &o( o o &o( *0Yso s ( o o r&p + r\p( ( Xi2*0Ct(@ ( ,$t (~ ,( , o o *(S *( *F6(@ o *( *( *( *Frz:p~ (+*6rz:p(+*Fr\pr]p(+*6r\p(+*Fr]pr&]p(+*6r]p(+*Fr@]prh]p(+*6r@]p(+*6r~]p(+*6r~]p(+*6r]p(+*6r]p(+*6r]p(+*6r]p(+*6r]p(+*6r]p(+*Fr]p~ (+*6r]p(+*6r:p(+*6r:p(+*0;ur]pF(+ (} - F*(~ ( s *04v(} - F+(~ ( s r]p( +*6r^p(!+*6r^p("+*Fr0^p~ (+*6r0^p(+*FrP^p~ (+*6rP^p(+*Frl^p~ (+*6rl^p(+*Fr^p~ (+*6r^p(+*Fr^p~ (+*6r^p(+*0;ur^pF(+ (} - F*(~ ( s *02wr^p(} - F+(~ ( s ( +*0;ur^pF(+ (} - F*(~ ( s *02wr^p(} - F+(~ ( s ( +*(*~ }f~ }i~ }j(J*0)x{m  (B t- |m(#+ 3*0)x{m  (D t- |m(#+ 3*0)x{n  (B t- |n(#+ 3*0)x{n  (D t- |n(#+ 3*~o r_po %-&~ t*Jo r_po *~o r2_po %-&~ t*Jo r2_po *~o r`_po %-&~ t*Jo r`_po *&( *{l-{d*(o o*0,yo (B(% ,o (F &**%~o r_po %-&~ t*Jo r_po *o r_po %- &( uu*^o r_puo *o r_po %- &( uu*^o r_puo *o r_po %- &( uu*^o r_puo *(* *"( *{g*"}g*{e*"}e*{h*"}h*No (B(%*o (B{l,(o o*{d*0Io (B{l,(o o( *{d,{do ( *~ *o (B{l,(o o*{d, {do *~ *0'zo (B(% ,o ,o **o o o ~oo *{l*"}l*F(o o*F(o o*0zo (B(% o *0M{{l,(o + {d -&o ,o o o o ,(E*Z{n, {no *Z{m, {mo *0| ~ }fo o o o > , ~ (Y ,o o o o 8o o o o +L o t r`prpo r `pr&po o ,o o o o + o - u2,o -)~s}f~s~ ~ s oC*o ~ (Y ,4~t}f~to o ( s oC*o -4~t}f~to o ( s oC*o /4~v}f~vo o ( s oC*~ o o ( s {l,(G (o o o+}doD*lX0K} G s jo &io 0 o o +,o *.? 0~(X((3oo o o ~oo ,o (Y -:o (E9o o 9{f~ (Y ,1(& ,i( r`p(:( +r&p +r&`p{f( o o o r>`po rR`p( o o rX`po *Jo o o  *0^(~qo ($-o o o ~oo ($-, ~ (Y ,[(J}i~ {l,%(o o,'(o o +{d, {do (K&*0)sM o o" o *0Nrv ps o o" (5@~ o o (@ rf`po r`pr`p( o* ( -hrUapo*   ao( rkapo*   ao( r{ap( + rap( o  rapo! (53 ($:s }ko - {ko o {ko" {ko  r`p{ko r`prpo o! (5.o ~ ( ,{ko% o (_ o) o*   ( -){ko%  o*   ao( o) +{ko%  rapo) (5@,rap o*   ( -& r^bpo* ao( rVp( {k,{ko  rap o! s ($-]rv ps o o" rlbp o  rap o! o  rprr>po! o o" rbp +o o" rcp o* ( :o* ao( rtcpo 1^ r^bpo* ao( o* ao( rtcpo o ( kY( rzcp( + rcp( ~ (i -{g,F(&,!(&i1{g- rcp( +}g rcp( o +.o ~ ( , rdpo (_ rVp( o o< rap o! o }j+$($,o o o {ko" o *0l"(_($:Y{i~ (i ,r(dp{io {j~ (i ,r@dp{jo {k,%rPdp{ko r`prpo o rddpo o o o, r|dpo o o ( o, ()~ ( ,rdp()(_ o, (-~ ( ,rdp(-(_ o, (+~ ( ,rdp(+(_ o, ('~ (i ,!('o ,rdpo o *0o sQ *~repor,eppr+fpq*rufprrfpsrfptrQgpurgpv*.rgpw*"(- *b( ok  ok *( *{}*"}}*:( }}*{~*"}~*{*"}*Z(V}~}*{*"}*{*"}*Z( }}*Zrhpo  oW ( *(a*(*Frhpr&p(+*6rhp(+*FrAhpr&p(+*6rAhp(+*Frchpr&p(+*6rchp(+*Frhpr&p(+*6rhp(+*Frhpr&p(+*6rhp(+*(a*(* *2(*Frhpr&p(+*6rhp(+*Frhpr&p(+*6rhp(+*(*( *Frip~ (+*6rip(+*(*( *f(((%}*{*"}*6({*r{, {o -o*{, {o - s. }{*ForvZp(Y *0(r ip rip rip rjpr(jp( r,jpr0p( r:jprhjpr|jprjp( rjp ( {~-s ~o ,Mrjp rjprkprHkp( rjp ( rtkprkp( r=prkp( rkprp ( rkprp ( rkprp ( rlprp ( r(lprp ( rRlprp ( rrlprp ( rlprp ( {, { o  *0o((@ rlprmp( o o o (X ( ,+rmp((tk ,o (o *0s. }{-}( ,( o ,*}{so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so {so *>(o (o &*Nr$mp((z*(*NrLmp((z*0o s *(*"(- *( r prL>po rd>prr>po rWprZmpo *Nrdmp((z*(<*&(J*0l( (#  #Y@( ao( o. (#  #Y@( ao( o. (# r~ po. *"}*(_{,rmp{o o *&-(*0((< r> po o! (< rmprpo! (< rmprpo! (< r0prpo! o (,(< rprmpo! (# ( ao( o. *0Z( ( , rp9ps z- r9ps zo .o . o .( }*r( - r9ps z}*{*{*"}*0"rmpr&p(+ (~ ,(X *6rmp(+*(*0){  (B t. |($+ 3*0){  (D t. |($+ 3*0){  (B t. |($+ 3*0){  (D t. |($+ 3*0){  (B tw |(%+ 3*0){  (D tw |(%+ 3*&( *0X{-Isc}{oW rnp( oN {oW o o {o {*2(of*6(og*2(oj*6(ok*2(oh*6(oi*2(or*6(os*2(ot*6(ou*2(ov*6(ow*2(od*6(oe*2(ol*6(om*2(on*6(oo*2(op*6(oq*n{- s }{*( *{*"}*{*"}*{*,uR-u0,}o*r,npsu z~o rnpo u%-&~ *bo rnpo o*~o rnpo u%-&~ *bo rnpo o*>o(~ *{*"}*n{- o}{*0C( o ,3o sK oL ( -o o ,(*0v}o ,`o sK o o o -(o o ,!( ,o rnpo -(}o *0]}(&o ,?{-7o rnpo -%o o - (+( ,(( *0^(  (,o rnpo ,o( (o  +o o &o - ,o *9S 0O(( (,$(# rJpo) (# rnpo) (o  +q o oG ((Y , ~ oH ((~ -oG (~ , (oH ((~ -oL (~ , (oM  o - , o (ol 2(o 2 (on-+ 2N(o /@(o oK  ,o((~ -(o (oH *E} 0A( -4(o  +o o -o - ,o *5 08/o ol Y +#o oj u, o o Y /*0`{,(o -{*{, {,{%sK o  o (~ -vo o -.( ropoW (U s zuS -.( reopoW (U s z-*o, ropsE zoo -)( r7ppoW (U sE z(} }{, {,{%sK o }{*(,(o , ( -*(~P o *( o-(,(( o( *0n  s -Ko rnpo ,Y  .Ns +o X2 o +"o  u<, ok o 9o  8 o sU   (Q rpp  oW  (Q (  (U oN o  o"  oF o( oK o( o X X o :Y u2  , o ,o rnp-+o *90;-*s  ooo ,o$ o* 0-}(,o(~ -o$ }*$$0d}( ,3s }(s o {o &+o,ou0}{*( *R}{o &*0 ub , o *{, rpps z{,(}*"(*Z{, {o *Z{, {o *Z{, {o *uR}{-rppr)qpsd z( *0@(  r=qpo  0o Yo  +r=qpo  o rGqpr&po rKqpr&po rOqpr&po  {ox3{oz(~ ,(rSqps  z{o(~ , rqps  zs&( o! 1  ( +( -rqpo rX`p( ( o o (> rqpo rrp(5 rX`p( *nupJ{o(*0{o9 s {ox @{oz{o{o{oo 9o! >o" o9 {{o~%-&of o{{o|%-&oh o}{{o%-&on o+{o{oo *(*0s  ( o o (> r{rpo sp   rrpoi  rpok  rrpoe  rpog  rrpom  oo  r&p {ox:s;(0 o6rpo8o:o {{o~%-&of o{{o|%-&oh o}{{o%-&on o+c{o  rrp o +  rrprrp( Xi2rrp ( rrp rsp( r tp rtp( rtp rtp(  rvup( r1vp rQvp( s  +g s;  (0   o Zl( o6  o8 o: o X{o0Xi2{ox-o 1o Yo *0{oo" ( (~ ,{o( rvp s7 r&p o +o  (( o - ,o  o8 *O%t 0К(@ oL t ( *%{X}{{Yo *0l( r{wps7 o }s }o >0rwps o  8 o  o( o o( o Yo rpo ,Y  rp o І(@ ( o ,6o> o o +І(@ ( o -rprRp( {o( o  o : u2  , o s   o **M=0L{o( (~ ,/s o   {oo o$ ( *0:s! s" sn oo ,o ,o o( *   ) * *Js }(# *Vrwp#(&+*6rwp('+*Vrwp#Y@(&+*6rwp('+*Frwpr&p(+*6rwp(+*Frwpr&p(+*6rwp(+*Fr xpr&p(+*6r xp(+*6r'xp(+*6r'xp(+*6rSxp( +*6rSxp( +*6r_xp((+*6r_xp()+*6rwxp( +*6rwxp( +*Frxpr&p(+*6rxp(+*Frxp ( +*6rxp( +*6rxp(+*6rxp(+*Frxp~ (+*6rxp(+*6rxp(+*6rxp(+*(*(% *ryp*(& *(' *j(' }o o" *{*"}*0jr}yp(@ s( }ryp~(@ s( }s) }(* {{o+ {{o+ *J{(, t*:{(- *J{(, t~*{*:((* *6ryp(+*6ryp(+*0( -rp (Q (/ *N(Q ( (*Fryp~ (+*6ryp(+*Fryp~ (+*6ryp(+*6ryp( +*6ryp( +*6r zp( +*6r zp( +*Frzp~ (+*6rzp(+*6r7zp(+*6r7zp(+*FrIzp~ (+*6rIzp(+*Frozp~ (+*6rozp(+*Frzp~ (+*6rzp(+*Frpr&p(+*6rp(+*Frzpr&p(+*6rzp(+*Frzpr&p(+*6rzp(+*Frzpr&p(+*6rzp(+*Fr{pr&p(+*6r{p(+*Fr/{pr&p(+*6r/{p(+*6rM{p( +*6rM{p( +*6rQ{p( +*6rQ{p( +*6rU{p(+*6rU{p(+*Frk{pr&p(+*6rk{p(+*6r{p(+*6r{p(+*6r{p(*+*6r{p(++*J|r{p(*N|r{p(*J|r{p(*N|r{p(*J|r{p(*N|r{p(*J|r|p(*N|r|p(*6s0 }*6s0 }*0V|(1 ,|(2 (Z{({({({((*0(-r%|prA|ps z-r|p+r|p o ( o ,o ( (oH *(Q r|p (-r}p+r~p(U (@ (( (3 *( *(t*Nr~p((z*(<*{*"}*{*"}*{*"}*0s6 o< r> prpo! o< rL prpo! o< rh prpo! o# r6 po) o# rEpo) s7 s: o8 o9 &o= o> &(_,o (_o" s7 s: o8 o9 &o= o> &s(b(ar&po (ao# rEpo) (ao# rEpo) (a#5@s4 o (a#@s4 o+ (ao# r p(co; (ao# r" pr6 po; o (ao" ( o0 (*(ao o (_,(_o o (z*(_, (_}( o5 (|*(_r~p(ao o (_,r0~p(_o o *Jr p}(*( s<(`(_r&po rJ~p(d*b(_rZ~po(f*(i*(6 *(7 *(8 *0 CD (@ s9 s: *0u ,(~*s *0- rt~ps zs r~poo oo; +(< (= (> o (? -uo s@ oor +os  (~oA o - ,o r~poB o *2)[|! - r~ps z(@ ( -(@ oA ,(**0/- r~ps zs r~poC - r~psE zr~poD uooE +ZoF (G r~p( ,>(G r~p( ,*o(G (H -+ (H o( oI o - ,o r~poC ,cr~poD u ,OoJ +%o ux ,o(oK o -u2,o *Jg 2(L *0%s ~& soM *( sN }( sO }*{*"}*{*{*(*2~o *Z(~ ,*~o,+*0- rkps zs oQ ooR oS +# o t` ooQ oT oI o - u2,o oU ,MoV oW +o t o(oK o -u2,o *,/[+0 - rups z, oX (~ ,*rprp( sY sZ s[ o\ S ( rp  oX  o  (U s] ( o o^ o_ s` z ,o oa oV oW  8' o t({ oQ o| , o ,k( rCp  oX  o> o  oQ  (U su ( o o^ oQ (s` zoV ob .\( rp  oQ  oX  (U su ( o o^ oQ (s` zoV oc (  o  o : u2,o *ALC LSfC^ :0]sZ s[ od ,9+/oe ( - of -og 3oh -oi od - ,o ** CO (j * *rp(k ol (m rp(Y *Zrp(k ol (m *0s! rp(n oo &o( ( r p s   rGp( (k op ~-sq ~(-+os  8  ot sp    r> p( (k op (.+ov og   rSp( (k ow ~-sx ~(/+~-sz ~(0+(1+oo  s;   r]p( (k o| ov (} o6  rqp( (k o| ov o8 o: o  o :  , o (2+*A} 0sp  r`p(k o| ov oe rp(k o| ov oi r> p(k o| ov og rp(k o| ov ok rp(k o| ov oo *0s; rՂp(k o| ov rp(Q ( o6rr>p(k o| ov o8r%p(k op ~-s ~(3+(4+o:*0s! r/p(n oo &,r̃po &-rpo &o( ( rp(k op ~-s ~(5+ (2+*( *( *04~o -#Ђ(@ o t ~o *04~o -#Ѓ(@ o t ~o *04~o -#(@ o t ~o *{*"}*{*"}*0s }s }( r&p ( ,o o o o -[o ( {,]o o o> rp(Q rBp (r&p(U ( +o o o o (}( **0!( {9o o (~ :o o (~ :o s (9{o -{o }{:(Q rGp{( -!o o o^ rrpropo + {o( rwp(rp{((n (U }r&po r&po {o {o +( {o ( -ݾo  {o +3( o o (Y ,o o (Y , ( -o -P{o {o {o  + ( } ( - o *(>$b@(o -%o ,o (,o o o ( *0 o o rwpo o rpo (~ : (~ :o rDžpo o o o rwpo o rpo o (0   #v@( o o o o o rpo ,o o <o rpo %-&r&po   , o   +c  rp(Y ,r)prKpo s +9rUp(Y ,r)prepo s + X   i2s  ( (  (rupo (Q rp( ((U o ,o  *[ 0o  8[ ( {:A(-)( r p  { (U s  zrpo {o o ~o ,)( rp{(U s  zo ( o ( {s o &o (8Io {(Y 9%(Q rpo (U o o rpo ,o  Yo  s (Q o o +no ~ - rpo  ( t  o  (Q rp ( ((U o o -u2,o ,o rpo Xi? ( o rƉpo {o } ( : o *A|{v > nv04 o (8 o(~ , +No  , o   +$  { oX ( - + X   i2o(~ -Po  , o  +& {oX ( - +X i2Xi?-,C(+&{o (Y ,+Xi2_ *0rVps  o 8( - {:{(i ,erVpo &{o &r^ po &( o o &r^ po &oo o o &{ r^ po &{o rԉp(Q ( o &( ::o o( *0s   ; o   8[    :o 8- 8 - 8- 8:s s(o +io rԉp(Q ( o ,*( r؉p(U s  zoq Xi2 op -*( rVp(U s  z s  } o Xi? X   i?*Fo rԊp( *0 (~ ,~ *   8P oj  .; .5"./'.)<.#>.\. ..  . /%-o Xs 1 o & X  "0/YEJXft";8'.rpo &+0r po &+"rpo &+ / (+X X o ?-*1 o &o( *0/ rpo &(Q rp o &*s s s r,ps7 *:}( *r( }}}*Ro o (*0:({o s o ,o ,o * " . {( ,{( }{*0.t {{(Y ,{{(Y **b{o {o a*( ( (@ o o ( *&( *6rًp( +*6rًp( +*:rp(6+*6rp(7+*Frp~ (8+*6rp(9+*Frp~ (8+*6rp(9+*(*( *:((*(o o o (X ( ,+rmp(*Frpr1p(+*6rp(+*FrOpr&p(+*6rOp(+*6rmp(:+*6rmp(;+*J|r~p(*N|r~p(*J|rp(*N|rp(*6rp( +*6rp( +*({({(*6rp(<+*6rp(=+*6rp(+*6rp(+*Nrьp((z*(*Nrp((z*(*u}{-r pr)qpsd z( *0b^{o,{oo( +rp ( o o (> rWprp( o rp(5 * * *( *{*{*{*( *:( }*&(*V( }}*6{( *0)*{  (B t[ |(+ 3*0)*{  (D t[ |(+ 3*( *J( o th*:( o *:( o &*:( o *Z{, {oQ *6( o *R( ~P o*V( ~P o*R( ~P o*J( ~P o*"}*{-$o ( }{- ( s z{*0"(e 3(@ of t3 o*"o *^o rpo *o rpo ,o rpo **^o r%p{o *0@o r%po -*{*^o rApko *0@o rApo -*k*^o rcpo *0@o rcpo -**^o rpo *0@o rpo -**Jo rpo *0!@o rpo -r&p*t*0//( /"o o 1o o o  *"( *( *"( *2oo *6oo *2oo *6oo *( *( o( o o( o *2oo' *6oo+ *2oo* *6oo *2oo *6oo *2oo *6oo *2oo *2oo *oo oo oo# rюprpo *2oo *foo oo *2oo *foo oo *{-s }{rpoN {*{-s}{r poN {*{-sM }{rpoN {*{-s }{r3poN {*0A{-2s6 }{rIpoN {o8 oo9 &{*0H{-9s7 }{o= oo> &{o= o o> &{*j{- s: }{*j{- s: }{*o"*0$o ,s (> (#o **o$*0o 9s oo s (!rUpoo o rspoo o rpoo o rpoo o rُpoo o rpoko, rpo{o, o **:( (%*( oo>+o o *r( (o - oo *0o ol 2o oj o.jo o oo oo" o o oo" o oo" o oo" o oo" **o+o,o-o.o/*(-(# (=o. ( *0oo oo  or;po orwpo o rpo oo o( o (-Noo# (=o. (o -.oo# #rpo. oo# 'rpo. *oo  oo< rpr)po! *0E(o -oo# (rJpo. *o( o o( o+ *or1po oo# r~ po. oo# (rJpo. *0C/(o ,o  o ooo *oo ( oW (o *0dooo oo o  o o  o o  oo o  ooo ooo *&o4*o5*0o -*oo o (Q ( o 3so. o3aoo o  os%  o:o - o<+:oo 2 o o +~ o +o . o **2~P o *J( ~o *J( ~o *J( ~o *J( ~o *0"( ~o t/ ,o *0"( ~o t/ ,o *0[o :O o) 3 8o) -o o 8o) 3^ o o +-o t o' o o ( 1 X o -~u2,o o) 3` o o +/o t o' o o ( 1 X o -u2,o o o 2&o o' o o o Yo +o o' o o o;*N:<0hrap (o -Xo o o o o ropo -&o o o o o r}po , rp( *Vs s *( *6r]p(+*6r]p(+*Fr]p~ (+*6r]p(+*Frp~ (+*6rp(+*6r:p(?+*6r:p(@+*Frp~ (+*6rp(+*Fr0^p~ (+*6r0^p(+*FrP^p~ (+*6rP^p(+*Frl^p~ (+*6rl^p(+*Fr^p~ (+*6r^p(+*Frבp~ (+*6rבp(+*(*(  *Frpr&p(+*6rp(+*FrApr&p(+*6rAp(+*6rkp(+*Rrkp(+(]*6rp(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frђpr&p(+*6rђp(+*Frpr&p(+*6rp(+*Fr p ( +*6r p( +*Fr'pr&p(+*6r'p(+*FrKpr&p(+*6rKp(+*Fr{pr&p(+*6r{p(+*6rp(+*6rp(+*6rp(+*6rp(+*(*:((*Fr xpr&p(+*6r xp(+*Frpr&p(+*6rp(+*6rݓp( +*6rݓp( +*6rp( +*6rp( +*6rp( +*6rp( +*6r/p( +*6r/p( +*FrKp ( +*6rKp( +*Frep ( +*6rep( +*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*(((|/ rpsu z((~/ rMpsu z*0n(%-&~  , o i28(~ -.(~ -$(Q ( ,(Q ( -~! *s" *0< (Q rp (# ($ (U (*(}(oo (oo (oo *o rŕpo %-&@@*^o rŕp@o *(O*jrەp(((z*(*(*00 ss s}(J*J(~o *J(~o *09(~o t , o*rpr&ps% ( *n{,~P o}*02([& (o (~ - (o (~ -(Q (& i(}(o 99r prpo rpr%po r)pr(jpo rtkprkpo rUp(Y ,r&p (rKqpr&po rGqpr&po rKqpr&po rGqpr&po (i }((o (~ -}{** *01 o - +( ,( o +  & ***o r7po %-&*^o r7po *o rgpo %-&*^o rgpo *o r{po %-&*^o r{po *o rpo %-&*^o rpo *o rpo %-&*^o rpo *~o rpo %-&rpt*Jo rpo *~o r)po %-&~ t*Jo r)po *J(rIp(*(O*~o r[po %-&~ t*Jo r[po *J(rp(*(O*o o (@ rpo *(O*o o (@ rӗpo *(O*o o (@ rpo *(O*o o (@ rOpo *(O*o o (@ rpo *(O*o r٘po %-&*^o r٘po *~o rpo %-&~ t*Jo rpo *o rŕpo %-&@@*o rŕp@o {,(,(*~o rpo %-&~ t*Jo rpo *~o r1po %-&~ t*Jo r1po *>#Y@( *>#Y@( *0?r&p  +(1 rVp( {o ( X {i2*(O*j{- s' }{*"}*0Fr&p  +,1 rVp( (o( o ( X (o) 2*(O*( *Frqpo ( *Frpo ( *Frpo ( *Frřpo ( *r{,(, {o *"}*0#V(i rIps7 r&po8 *0r&p r&p  o 0r&p+( o 1 ( o o ( , &, ++o o (@ rߙprp( o */L0-{o o o rpo* 1  & *&&0&(X(~ ( (rd p( ((rkprtkpo rpr po r%prpo r(jpr)po ( (( (Q ( ( o o  +q(,'o oj u o< rHprZpo! o oj o> Р(@ ( ,o oj u(o X o ol 2*0L(_rp(o r-p(o rUp(o rsp(o *0( (#  #Y@( ao( o. (#  #Y@( ao( o. (-5 +%{oo {o" X {i2*o {o" *.s *&-(*0((< r> po o! (< rmprpo! (< rmprpo! (< r0prpo! o (,(< rprmpo! (# ( ao( o. *(+ *(, *"(*:( } *{ *0&( ,*u ,{ { **2| (- *2~o *ss~*( *(. *{*"}*{*"}*( *:( }*F{o o *6(o/ *s0 z6(o *J(oj t9*s0 z6(o" *2(o *6(o1 *:(o2 *2(ol *2(o3 *:(o4 *F(o s *2(o *:( }*F{o t9*:}(G *F{o t9*2{o *2{o5 *0){#  (B t0 |#(A+ 3*0){#  (D t0 |#(A+ 3*j{"- ( }"{"*"}"*(6 (~ , (W (7 (6 *"(7 *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{-~ *{*"}*V{ -~ *{ *"} *V{-~ *{*"}*V{-~ *{*"}*V{!-~ *{!*"}!*0(O (8 9 (@ rp(9 (3o t= (: o tk   oN, o,(;o X +o,(9 o,(:X o rۚp(; (Q o (< o rp((; (Q o (< o r p(!(< o r%p(-(< o r?p()(< o rYp(+(< o rp('(< o rpo (< o r՛p((< o rp((< o rp(#(< o r?p(%(< o rap(/(< o rp(1(< o rp((< o rӜp((< o rpoH(< o rpoh(< o r?poF(< o rQpof(< o rsp((< o rp(Q ( (< oP(~ -oR,oP(= (+ ( (o0EG7*o rpr۝p(< o r p(Q ( (< *(o> o? (o> o@ (o> oA oj, o^o XX od,oj, X + X o r-p(< o r9p(< o rIp(< o rpr]p(< o r p(Q ( (< *(oB oC (oB oD (oB oC o o (oE   o (oE (   o (oE (  oJ,oJ]o( +  o rp(< o rp (< o rÞpol(Q ( (< (oB oF r&p (oB oG (oB oH ( (~ , r&p +,(oB oG rVp(oB oH (  oL,r&p+  ob,9 (~ -0(I    o   o XX o rӞp(< o rp (< o rprp(< o r p(Q ( (< *(oB oC  (oB oD (oB oC o o (oE o (oE ( o (oE ( oJ,oJ]o( +o rp (< o rp(< o rÞpol(Q ( (< o rpr=p(< o r p(Q ( (< *(oB oF r&p(oB oG (oB oH ( (~ , r&p+,(oB oG rVp(oB oH ( oL,r&p+ob,9(~ -0(I o  o XX o rӞp(< o rp(< o rprmp(< o r p(Q ( (< *V(: o uk*0I(3o t= (: o tk r&p(7 r&p(J r&p  (-To oX ()(Y ,<((7 ((~ ,(6 (J + ((J oH  ,<o o ,/(+o ,"(+s o o & 9o o 9oP(~ , ( oK r&p(oB oG (~ -C(oB oH (~ -,(oB oG rVp(oB oH ( o0YE$$$8o ((L && o o ob,S(~ -Jo0. o038;o   o , o XYo,(;o  o0.;oP(~ - oP(= +( oB oC o    YZX  . ,o ((M && -:((7 ((~ ,(6 (J + ((J oH 9(!(~ ,(-(~ :o0Emmmm8Z(!(~ :(!((/   o o  8&((7 ((~ ,(6 (J + ((J  -:(#(7 (%(~ ,(6 (J + (%(J oH 9(-(~ :(-((/   o o  8&((7 ((~ ,(6 (J + ((J  :1(/(7 (1(~ ,(6 (J + (1(J oH 8o ((L  (!(~ -a(!((L  (N & -:(#(7 (%(~ ,(6 (J + (%(J oH 9k(-(~ :[(-((L  (O & :1(/(7 (1(~ ,(6 (J + (1(J oH 8o ((M (!(~ -a(!((M (P & -:(#(7 (%(~ ,(6 (J + (%(J oH ,n(-(~ -a(-((M (Q & -:(/(7 (1(~ ,(6 (J + (1(J oH ,i{#,ao sR {#oS oT -:oH ((7 ((~ ,(6 (J + ((J -^rpo r˟prџp(  (@ rٟpoW ( (3 *p0(X8( 8>80}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p}r&p} r&p}!(K *0X (< +?o rIp(Y ,- + rpo o* .-*, X o 2*0\ (<  +Ao rIp(Y ,- +"rpo o* .- +, X o 2*0#_(9 (: (<YXo *0- rr>ps zs! s! r&p   8rp o o* .yoU -$ o o &oV  o 8| o rp(Y ,rpo &8W o rp(Y 9@rpo &8/rp o o* 3~ o r#p(i ,j o rNp(i ,VoU -! o o &oV r&p 8r'p o o* ; o o &8 o r#p(Y ,oU -oV rpo &+j o rNp(Y ,VoU ,No( (Q (/ Y1+o &X2oV rpo &r&p X o ?2o( *Nr=p((z*(<*rMp*(?*( s<(`(_r&po rWp(d*b(_rgpo(f*(i*:( }'*{'*{(*"}(*R(v t})*2{)oW *JrpoS*2{)o*JrpoS*2{)o*Jr%p{oS*2{)o*JrApkoS*0xsy rprpoR ,o &rpr٠poR ,o &r%prpoR ,o &rAprpoR ,o &*03{)({ o| ,oX ,oY oZ s[ **0/{)({ o| - r9psd z{)o *2(E t*0< s (Q s\ sn (ToH(Too o( *( *( *u}*{*-r_pr)qpsd z( *0W{*o' ~ (] ,{* s^ o+ {*o* ~ (] ,{* ,s^ o {*o &(_ o( r=qpo  1 o( o( r=qpo  o +o Yo  rGqpr&po rKqpr&po rOqpr&po rpo -rprϡpo s {*o(B+oa t8 rpo & oG (~ , {*o+ oG r pob & oI u,oc o &+r1po & oW o &rX`po & oL (~ , {*o+ oL r pob & oN u,oc o &+r]po & oW o &rX`po &rpo &Xi?rX`po &o( *(d *( *0E rpom tErpom tE  +G  ,9o +(@ +(@ s9 (q oh X i2(e **(J*~o r٢po %-&~ t*Jo r٢po *{-*"}-*{,*"},*( *"( *o rpo %-&*^o rpo *~o rpo %-&~ t*Jo rpo *~o rpo %-&~ t*Jo rpo *~o rpo %-&~ t*Jo rpo *~o rpo %-&~ t*Jo rpo *o r!po %-&pp*^o r!ppo *~o r;po %-&~ t*Jo r;po *~o rapo %-&~ t*Jo rapo *{+*"}+*{0*"}0*0( {-,-s/ }/{-{/o o {/o" {,9s/ {,o {.o 9(p9o rp( s' oN of  o o" sg o rp( oN oh  {sK oi oj o o" o o"  o (y*o o" *0Tu-*uoW o  Yo (v-*rp( o ,u$,of *0o rp( o (} rǣpo (} rpo (} rpo r#po ( o r po  r~ pok {.o , r1pok ol (}{/,&{/of {/oo {/of + (^o om om om om om *{.o , r1pok Lol *0{/, {/of ( o o  r=po (v,o -r~ pok (rJpok ol on om (Qo *0W(_r]pr#po ( o {.,,rqp{.o o r}p{.o o, *"}.*( *5*(o *(p *0o  ,o o=9o>o o: o 1rpo: o?(oq ,rprˤp(o6 o 1rϤpo6 (or ."rpА(@ (s (o -rpr p(,rpr p(ot o 1r%pot (( ,o * 00oW ,o o ou (~ -o o -  rEpo o , (v ( o o (~ - "o o<L. o<3Ho -3o ( ,"o' ( ,o* ( - rWpok ow ,o ox - o oy o< oz o + o to{ o o -*o (@ rqp~ o| *0[rpo r p( rӥp(} o rp( (Q rp o (U (3 *0So=,J(@ rp(9 (@ rqpr>p(3 (@ rcprp( *.(*2(< *Nr>p((z*(*jrZp(((z*(*Nrpp((z*(**(J*^(o~o *^(o~o *01 o - +( ,( o +  & ***2(o*6(o*o rpo %-&*^o rpo *o rgpo %-&*^o rgpo *~o rIpo %-&r&pt*Jo rIpo *2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*2(o*6(o*(' *"(+ *(* *"( *(~ *"( *j{4- s- }4{4*j{9- s}9{9*j{:- s}:{:*0o s rpo *(w ,(,& (-r&p+rprp( o ( *(_rmp(o o {5,r8p{5o o *0W( (o(o (}5(o(o s6 o o  rXpo o# rpo) s7 % }7s: o (o" rpo o= o> &o8 o9 &s7 s: % }6rpo o (o" o= o> &o8 o9 &s7 % }8s: o (o" r8po o= o> &o8 o9 &o o" *0@(oso (os o (oso *0e(os>o (os o (oso (os o (oso (oso (oso (oso (oso (oso (oso (oso (oso sC (oo s rp%oN o{(o o (oso (oso sl(oo srp% oN  o{(oo (osDo (oso (oso (oso s@(oo o- s9 rpo6rpo8o s9 rpo6r>po8o s9 rVpo6rpo8o s9 rpo6rpo8o s9 rpo6r8po8o s9 rXpo6rpo8o s9 rpo6rpo8o s9 rʮpo6rޮpo8o (oso s@(oo o- s9 rpo6rpo8o s9 rpo6rpo8o s9 r,po6r6po8o s9 rJpo6rTpo8o s9 rhpo6rrpo8o s9 rpo6rpo8o s9 rpo6rpo8o (oso (osBo (osU o (oso (os>o (oso (oso (oso (os( o (oso (os o (osno (oso (os& o (osS o (os;o (oso (os o (oso (oso (os^o (os o (oso *0(oo o(ooh -a(o(o ,(o(o &{8of (o  uo# r¯prEpo; +T(o(oo + (oog oouX (ooh 2(oo o(ooh -h(o(o ,(o(o &{7of (o  uo# rprEpo; }5+d(oo +<(oog oou(oog oorX (ooh 2o' ( -1o oj uo#  o' ao( o. o* ( -2o oj uo#  o* ao( o. o (,(-{6o#  r po) (oo* 0(X&};* n{;- s o ( *o  (o(o(o*"(- *f(  ok  ok *6rp( +*6rp( +*Frpr&p(+*6rp(+*6r/p( +*6r/p( +*FrIpr&p(+*6rIp(+*(*( *:( }<*{<*2((~ **(*r( }=}>}?*{=*"}=*{>*"}>*{?*"}?*Frep"?(C+*6rep(D+*6rp(E+*6rp(F+*Frp"?(C+*6rp(D+*6rp(E+*6rp(F+*6rٱp(E+*6rٱp(F+*6rp(E+*6rp(F+*6rp(E+*6rp(F+*6r9p(E+*6r9p(F+*FrSp"L?(C+*6rSp(D+*Frup"@(C+*6rup(D+*Frp"?(C+*6rp(D+*Frp"@(C+*6rp(D+*6rp(G+*6rp(H+*Frٲp (G+*6rٲp(H+*6rp(G+*6rp(H+*Fr%p"@(C+*6r%p(D+*Fr?p"@(C+*6r?p(D+*:r[pd(G+*6r[p(H+*Frp"?(C+*6rp(D+*Frp~ (I+*6rp(J+*Frp~ (I+*6rp(J+*Frӳp~ (I+*6rӳp(J+*Frp~ (I+*6rp(J+*Frp~ (I+*6rp(J+*Frp~ (I+*6rp(J+*FrIp~ (I+*6rIp(J+*6rmp(E+*6rmp(F+*Frp~ (I+*6rp(J+*j{@- s }@{@*( *( *j{A- s }A{A**V( } } *{ *{ *0Us! rpo &{ 6o &rpo &{ o &rɴpo &o( *0;u ,/( { { o ,( { { o **0:/ Ԟ )UUZ( { o X )UUZ( { o X *r( } } } *{ *{ *{ *0ss! rpo &{ 6o &rϴpo &{ o &rpo &{ o &rɴpo &o( *0Su ,G( { { o ,/( { { o ,( { { o **0S/ OY )UUZ( { o X )UUZ( { o X )UUZ( { o X *V( } } *{ *{ *0Us! rpo &{ 6o &rpo &{ o &rɴpo &o( *0;u ,/( { { o ,( { { o **0:/  )UUZ( { o X )UUZ( { o X *0s }Bs }C(o +1( o o" {Bo os o &( -o (o +l( o o" u,,u {Co o o s o &+$u {C o o s o &( -o *#>a|y0\(_rp{Bo, r)p{Co, r;p((b o, rKpo o o o, *o o -*o o 8*No 8o *(G*0[~D,*r_p( t ,9sEo~EЙ(@ ( ~EooFD*.($~F*( *( *]*:((*0((0 EWN 7+q(c(e(k(C+S(e(k(C+<(e(k(C+%(c+(c(e(k(C(P(~ , r&p(Q*0K((X o tko o o o (X ( ,+rmp(*Frpr&p(+*(n- rpsu zrp(+*Frߵprp(+*6rߵp(+*6rp(K+*0rp(L+ ERJ4*(c(e(k(C*(e(k(C*(e(k(C*(c*(c(e(k(C*6r"p(+*6r"p(+*6rJp(+*6rJp(+*Frrpr&p(+*6rrp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rطp(+*6rطp(+*Frpr&p(+*6rp(+*Fr"pr&p(+*6r"p(+*6r4p(M+*6r4p(N+*FrRprp(+*6rRp(+*Frhprp(+*6rhp(+*Frpr̸p(+*6rp(+*6rp(O+*6rp(P+*6r p(Q+*6r p(R+*6r(p(+*6r(p(+*FrRpr&p(+*0P (~ ,( (S+(= (SrRpoK (+oB oC (UoB oF (Wo> o (Yo> o ([oB oD  oB oC o o oE o oE ( o oE ( (]o> o? (_oB oG oB oH ( (~ , r&p(a*oB oG rVpoB oH ( (a*6rjp(+*6rjp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Fr"pr&p(+*6r"p(+*FrZpr&p(+*6rZp(+*Fr~pr&p(+*6r~p(+*Frpr&p(+*6rp(+*6rp(+*6rp(+*6rp(S+*6rp(T+*Fr"prHp(+*6r"p(+*Frxprp(+*6rxp(+*6rʻp(S+*6rʻp(T+*FrÞp l( +*(Q ( o . rpsu zrÞp( +*0K(, (0 (~ :-.@"(; YE@i8r$pr:prPprfp( +*rxprp( +*rprprprpr*prRprtprp( +*  +$  oj 9. .. ,. X   o 2**(*0SsR rp(oUrpoJ%o~ rp( o sR r p(oUr poJ%o~ rp( o s6 o< r> prpo! o< rL prpo! o< rh prpo! o# rWpr po; s7 o8 o9 &s:  o= o> &o o o" o o" (o0 (rpsXo (r psXo (*rdp}Js }Ks }L(o*{J*"}J*0r0=ps r0=ps s6 o< r> prpo! o< rL prpo! o< rh prppo! s7 o8 o9 &s:  o= o> &o o o" o rtp(s o" o r^ ps o" s:  o= o> &o {Ko# rWpr|po; {K o o {Ko" s7 o8 o9 &s:  o= o> &o o o" o rp(s o" o r^ ps o" s:  o= o> &o {Lo% rWprpo; {Lo rprp(rps o {Lo rprp(rdps o {Lo rprȾp(r־ps o {Lo rprp(rps o o {Lo" (o0 (rp{KsXo (rp{LsXo (p*0H{Ko< r`p{Ko o! {Lo  r`p{Lo o! (*f(rp(ro, *"(x*&(y*V( }T}U*{T*{U*0&( ,*uB ,{T{T**2|T(- *2~So *sxQsxR~RS*(D(@ r*prmp( (*0((~ :((u - rfpsu zoX (X (i , rpsu zo;(~ ,o=(~ , rpsu zo?(~ , oA(~ - rRpsu zs oW rp( oN o# r~ po) o o" oW o o o (r&po (*Fr pr&p(+*6r p(+*Fr#p~ (+*6r#p(+*6rAp(+*6rAp(+*Frip~ (+*6rip(+*Frp~ (+*6rp(+*(**V( #rpo *( *Fr Hpr&p(+*6r Hp(+*Frpr&p(+*6rp(+*{Z*"}Z*{[*"}[*6r$p( +*6r$p( +*6r4p( +*6r4p( +*J|Yr~p(*N|Yr~p(*J|Xrp(*N|Xrp(*6rp(+*6rp(+*6rp(+*6rp(+*6r-p(+*6r-p(+*6rKp(U+*6rKp(V+*6rcp(+*6rcp(+*{\*"}\*6rp(W+*6rp(X+*Frwpr&p(+*6rwp(+*00((@(r&p(Y , rpsu z(r&p(Y , rpsu z o o o o +" o tM oW rp(Y , + o - u2,o :s ((i o o  r`prpo o  rprpo o  rprpo o  r/pr;po o o o o" *e.( *( *~`*{_*"}_*{^*"}^*J{^~]( *0 (% 9s o o o +"o t {^o ,o o -u2,o o +o o o o - ,o *'/Vs! 0 (% 9s o o o +#o t (o ,o o -u2,o o +o o o o - ,o *'0Wt! 0a- rCps z~ (Y , rYps z (% ,.o o . ( sE zo (o *0M- rYps z (% ,1o (o ,o (o us ,**0B- rYps z (% ,"o (o us ,o *~ *0B- rYps z (% ,"o (o us ,o *~ *0Z- rYps z (% ,>o (o ,(o (o us ,*rmps z**0s  (% 9o o o +Mo t {^o ,2( o o , ( o o us , o o -u2,o *'Zn( ,( o ,( **.rp]*.s`*( *6rp( +*6rp( +*6rp(Y+*6rp(Z+*6rp( +*6rp( +*6rp([+*6rp(\+*Jrp"=(]+k*6rp(^+*6r-p(+*6r-p(+*0((/&( rGp (X (U s z(/&( rp (X (U s z("5&( rp (X (U s z*(*(' *B((*{c*}c(# {c-r1p+r~ po) *{f*{d*{e*{e*0)u! ,o o sB  ( **Z}d}e}f*:((*0N(L(@ r6prmp( o o o (X ( ,+rmp(*Frxpr&p(+*6rxp(+*Frpr&p(+*6rp(+*( *(' *Jo {mo!*No {mo"*Jo {mo#*(0o {mo$*rprps zJo {mo+*1(o {mo,(1((*r zpr.ps z*Jo {mo*No {mo*Jo {mo/*No {mo0*Jo {mo'*No {mo(*Jo {mo-*No {mo.*Jo {mo1*No {mo2*Jo {mo3*No {mo4*Jo {mo5*No {mo6*{o*"}o*6o {p*jo }p{mo**(W *(N o {mrvp( oN {mo *(  s}m(o -o {mo" *0( ( ( rprpo raprpo r`po rp( o rp( ( o ol  8r`po rp(Q ( ( o {o-rprpo {p-J0#r p(rrp(( o +mr p(rrp(( o +JY0#r p(rrp(( o +!r p(rrp(( o Lol r=po om X (X?om *0B( o o r&pr&pr&po &o {mo o&*J( ~lo *J( ~lo *0"( ~lo tP ,o *{n*0s  o o }n*0s  o *.s l*0A( - rH ps z ;o i3}q}r*{q*{r*{s*"}s*Frpr&p(+*6rp(+*6rM{p( +*6rM{p( +*6rQ{p( +*6rQ{p( +*6r<p(?+*6r<p(@+*6r\p(+*6r\p(+*J|wr~p(*N|wr~p(*J|xrp(*N|xrp(*({w({x(*(*:((*Frnpr&p(+*6rnp(+*Nrp((z*(*Nrp((z*(<*N(ys(p*(t*Nrp((z*(* *(*( *"(0 *:( }*{*0&( ,*u] ,{{**2|(- *2~o *s0 s0 ~*Frp"?(]+*6rp(^+*6r:p( +*6r:p( +*6rp(+*6rp(+*6rp(+*6rp(+*6rًp( +*6rًp( +*(*(J *B(% }*{*"( *nu+- rpsu z(" *ru+- rpsu z( *6(j t+*{*"}*{*"}*vr&p}r&p}( *6rwp( +*6rwp( +*:rwpd( +*6rwp( +*Frxp ( +*6rxp( +*6rSxp( +*6rSxp( +*6rp(+*6rp(+*6rp(_+*6rp(`+*6r_xp((+*6r_xp()+*6rxp(+*6rxp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rxp(+*6rxp(+*6r&p(+*6r&p(+*6rHp( +*6rHp( +* *6r\p(a+*6r\p(b+*6r'xp(+*6r'xp(+*6rp(+*6rp(+*6rp(+*6rp(+*Frp"=(]+*6rp(^+*Frxp~ (+*6rxp(+*Frz:p~ (+*6rz:p(+*Frp~ (+*6rp(+*Fr*p~ (+*6r*p(+*FrNp~ (+*6rNp(+*Frhp~ (+*6rhp(+*Frp~ (+*6rp(+*:((*Frxp~ (+*6rxp(+*6rwxp( +*6rwxp( +*Fr xp~ (+*6r xp(+*Frwp~ (+*6rwp(+*Frwpr&p(+*6rwp(+*Nrp((z*(*&( *"( *&( *:( }*V( }}*r( }}}*~o rpo %-&~ t*Jo rpo *j( -~ *{o *6( o *j( -~ *{o *6( o *Z( -*{o *6( o *j( -~ *{o *6( o *j( -~ *{o *6( o *2( o *j( -~ *( o *6( o *j( -~ *( o *6( o *j( -~ *( o *6( o *{-o }( , {o {*6{*2( o *0"(e 3(@ of t3 o*{*6( {*{-o rp( }{*{*0F{-7o ,/L(@ o Lrp( (Q o }{*{-$o ( }{- ( s z*0/( ,*o +o ,*o -*04- rps zo o  ,ol *o o *V- rps zom *:( (%*0F( ( ( oc+( o ,( o ( o o *2o s- ** *n( , ( o &( *0&o ,( o (~ -o **o o o ( o *"( *0oW ,o o o L. o 3( ( ,( ox - ( o ( oz o +o t ( o{ o o -u2 ,o *b+0o -0o  ( , o  ( ,o  ( -I( o rpo -( o rpo ,rpok *rWpok *08o -*( s o o s o o *0Bo -*s (> ("o o o 1o s o *(!o ,rp( o *0{ }(&*"}*o *o *"o *&o *o *o *"o *o *"o *o *{*"}*{*"}*( *0( t* o o  o o  ( o o  o o  ( r(po s o rTps % s o rprp( *0Fo( o ( o o (> o r9po o o o * *0&bs; ( o= (E sHoG &*( *( *J|rp(*N|rp(*J|rp(*N|rp(*({({({( {( *0-*orpop ,|(~ -tor pop ,(~ ,Xor8pop ,(~ ,<orpo &or8p(Q rRp  (U oq oor +os ( o - ,o * (*( *{-.s; }{(< o= {s oG &{*RoE (v }*Z{oE tOo*08{oE ({ rpo| {oE o &*44Z{oE tOo*08{oE ({ r zpo| {oE o &*44Z{oE tOo*03{oE ({ r7zpo| {oE o *0{:sy }{rjprps o &{r zprps o &{rprps o &{rprps o &{rpr&ps o &{*0F{oE tO ({ rHpo| o-o *o *0F{oE tO ({ rypo| o-Ro *Ro *( *03~( , r`pn(@ o s ~*~**V( rp~o *V( rp~o *Fr(pr&p(+*6r(p(+*FrJpr&p(+*6rJp(+*Frppr&p(+*6rpp(+*>( (~ *Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*>( (~ *Frpr&p(+*6rp(+*Vrp#?(&+*6rp('+*Vrwp#(&+*6rwp('+*Vrwp#(&+*6rwp('+*Frpr&p(+*6rp(+*6r:p( +*6r:p( +*Frypr&p(+*6ryp(+*(*( *( * * *0% ,o -*o (  ,s **0s o o +H o t uM ,2uS-*oW ,"oW o ,( , oW o & o - u2,o ~ o o *Tf0! o> o( rpo* . *( *jrTp(((z*(*Nrdp((z*(*0Q (E oN 9;Ъ(@ oO t 9rIprIpo + om o ,1 o 1( o rIp(Y - o rp(Y -o o ,  ( +z( o ( rIprIpo +om o ,4o 1*o rIp(Y -o rp(Y -( ( ( o om rIprIpo o* , *( *( *2(E t4*0 s (Q s\ sn 1rpo (" o o 4(@ rpo o 6ol om (" o(" oo o( *( *j( s }}*"}*{*"}*{*( *V( }}*r( }}}*6rp( +*6rp( +*Frp ( +*6rp( +*:rp ( +*6rp( +*Fr&p~ (+*6r&p(+*FrVp~ (+*6rVp(+*Frrp~ (+*6rrp(+*6rkp(+*Rrkp(+(< *6rp(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*6r:p(+*6r:p(+*FrVp~ (+*6rVp(+*6r~p(+*6r~p(+*6rp(+*6rp(+*J|r~p(*N|r~p(*J|rp(*N|rp(*Fr;p~ (+*6r;p(+*Frap~ (+*6rap(+*Fr0^p~ (+*6r0^p(+*FrP^p~ (+*6rP^p(+*Frl^p~ (+*6rl^p(+*Fr^p~ (+*6r^p(+*Frp~ (+*6rp(+*Frp~ (+*6rp(+*Fr<p~ (+*6r<p(+*({({(*Js s ( *(*{*"}*{*"}*{*"}*{*"}*{*"}*{*"}*( *( *2(E t*0!bs; (< o= s oG &*0(~ :(r o u+ -$(Q r\p(U su z (r   +o  oG 3 + X o ol 2.({ rpo| o o * *0 - rps z(r o 9(Q rp  (r o oW  (U s o &(r o (y  s!  (r o o  88 o t+ov(y (Q rp~ - +(Q -rp+rp(U ( (_ -rL>p+ ( (_ -r&p+rpo &,3(Q r$poW (U s o +A(Q r.poW (U s o X o & o : u2,o s (r o' ( -(r o' ( .r p+1(r o' (  #O@Y(  rtcp(  (Q r8p ( (_ (  (_ (r oW ( (_ ( (_ o( (r o* a(r o' a ~  ( (_    ( -r!p+rJp(U o &o( * s   (Q r1p( (_ (  (_ (r oW ~ o &rhps   o & o( *AK0D- rxps zo  oj c om (r o t+ (y *0s  oN o К(@ oL t s o o +o tM  (  o &o -u2,o o( *B(j0J,A,ob,obrp(x *-!o`,o`rp(x *o^*r&p*0b( ( (r o o +$o t+ oW (~ , rpsE zo -u2 ,o * 0P0i- rxps zo  oj c om (r o t+ К(@ oL t  -rp+rp(| *0( (} *0>r Vpo o> o ( ,o o ,o * '3 0fo ,1o o  rˤpo ,o o  om (t +%o ,o o  rhp(Y ,( ( *0К(@ oL t 9(r  rpo +(@ o t+ 9 +(@ ( oN oW o_а(@ oL t({ rpo| o o  o" %({ rpo| o o o ({ rpo|  o  oW (t o ,o *&%/ 0<oT  +X (Q ( ( o -(Q ( ( *0(r  o 9o  К(@ oL t 9r"po o а(@ oL t({ rpo| o o o4 %({ rpo| o o o oF o ol 1.({ rpo| o ol Y( o o o , o *`'%A 0@(v rBpow ,**0:@(v rBpow , .(v rBpox o *RoE (v }*0Tsy rjprps rprps rBprps o &o & o &*2{o *6{o *2{o *2{o *(' *}}#^@s4 }(J*J( ~o *J( ~o *0E_o   +( oG o -Y X o 0( ol 2/ *(O*{1{*( ol -*{*0/ r0ps z( ol -{-}*o ;o .*o ( ol /( o oG ow( ol 2( ol Y}}+}}o .*o ( ol /( o oG ow*2o tc*0./o  2( ol 2*( ( oG *0$/( o/ / r0ps zo *{*"}*(' *"(+ *(* *"( *(~ *"( *o rpo %-&*^o rpo *{*"}*~o r<po %-&~ t*Jo r<po *( **F(O,( **{*"}*{*( -( .r0prnps z}*{*"}*0p( o o }{17{o o ( ol /-( o oG ow*( ol 1o *0"( ~o u[ ,oQ *0Fu+ , o o" *u-&( rp o> (U s z*Vt+o( *0:u+ ,!ov,o ( ol /( o( *sD *0o s  rBpo *0;   +#( oG o ,X 3 +X ( ol 2*0s ( tQ ,vrpo o o ( o r\po tR  +3(  ( ol /(  oG o X i2*0s rpo o s ( o + o t+ o o o - u2,o r\po s ( *.)W00t ,{ ( {  o *( *07s! (" } o }  { - {  -**0(# (ok (w -  rBpo {, r1pok o' ( --o' ( 3 o' ao( ok ( (rJpok *0o oR {,+{."{3{-{3{,o o' ( - o' ao( ok +  r pok o rnp( o  rzp( ( o r1pok ol on om {3{,{3{-o *0o rp( o  rp( ( o {. {3 rpok {,Sr1pok {.{-rpo + rpo  |ao( ok ol {. {3( {-J{. {38( ol Y + ( oG  o ,o|Y /+K( o +o t+ o , o|o -u2,o {, {3( om **)S{,3o rp( o r1pok ol om *0zr&p {,Grp( { E+?rp( +1r.p( +#{ YE+r:p *0%o  ([ o , o .**2~P o *0i/{2{( ol 2} +3o 3( oG ow+( oG owX ( ol 2*0U/rJpo ,Fr^ po* .5Xom (# ,#(  o .o ~P o *0J(_rlp( oo, rp( o, rp( o, *.s *"(- *b(  ok ok *($ *{*"}**(' *j{- s }{*( *j{- s }{*( * *"( *{*"}*{*"}*j{- s }{*( *V( ( ( *{*"}*{*"}*( *V( ( ( *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *J( ~o *6rp(d+*6rp(e+*0? o rpo -s% o rpo o rpo t*Frhpr&p(f+*6rhp(g+*0[{-.s'}{rpoN o {o" +{o  -o {o" {*Frpr&p(f+*6rp(g+*2( s& *0&o {,{o (~ **o r4po -o r4ps o o r4po t*(' *"(( *6rPp(h+*6rPp(i+*{*"}*{*"}*6rxp(j+*6rxp(k+*{*"}*6rcp(l+*6rcp(m+*{*"}*{*"}*6o s*{*"}*6rp(d+*6rp(e+*Frpr&p(f+*6rp(g+*{*"}*0v^o o o) o* o o o o) o+ o Yo o o Ѝ(@ rpo rkprtkpo ( *brp( (d+*6rp(e+**f}~ }(, *0V - ok s- o. + o ~ ( (/ oh o -u2 ,o *,C0 ( o o }{,B{o0 +(1 {, {oF (2 -o }o ol Y +(o oj u,o oj oF Y /*+(S0B (  (  s }(o -+ ,-o3 u< , ok o4 { ok o4 9( , (~ +( ,( + o  +G o ,(5 o & ( 3  o &X X o - u2,o ( ,( , o &X ( 9>{9{o0 8(1   sa} { {oW o  { {o o` {(Q r4poW  {oX (U oN o  {o" (2 :^o   (& &sv}{rDpoe{( om{ oW os( ,#{o o rDpo ou+a{o o rTprhprprpo6 ou{rpok{rhpog{rpoi{( o{o rp( o{( oW o o {o" ( o ol Y*TM0F s' (Q rp (U oN ( , ( o *09( ,/( ,'s ( o ( o o" **0( -* ( 9  ( -es' s' s'  ( .( -o o" o o" 8do o" o o" 8Fs6  (7 o o o  s:  #Y@s4 o s:  ( Edd8s7 ( 3 o= o> &o= o> &+o= o> &o= o> &o8 o9 &+rs7  s7   o= o> & o= o> &( - o8  o9 &o8  o9 &+o8  o9 &o8  o9 &(- s (  o o  o" o o" +s'   (-  o  o" (Q rpo(U oN {- s8 }sQ   } }{ o9 *0...rpr"psd zs sVo/ (  ( 3(  3(  ,o 3B-?,<o: u;,/(^ ,%s ( oa o; o o" o ( o o" ,o$ sVo0 o*( *( *0@{@{={@{>{@{?{A(# }C{Bo &*0sm }>}?}=(< 9( ,| sn  }@o= }As }B}C(> {As? - o s o {Bo & o (I {C*o: u- o: u,6o: u -o: to@  {>{?(" *o: u;9o: t;oA :o: t;{>o {>{?12{>+Yo o Y{?0+0{>+Xo o X{?2{?o **i/p0( (~ ,*( (B (Q r4p( (U ( rhp( oC oD ( oE  YoF 1.+  XoF oG X iY2+, iY+  YoF oG Y0 YoG oH *F, rrpsI z*0(  Y(J sK ( (B  3*o 8o / 1s% sL ({ oc 8o tE  o}   o\ oM ,  ~N 3  o  oh  o ( (Y ,* o  o om oh  o oO o :su2,o ~oh oP Xo :u2,o YY  oQ >oR oS ,toR om   u,   +l u% , (Q  ( -O* ,, o> oM , o> o] , (Q (T  **rp( rp( sE z 3 oR oU oV oW +p(X ~om t?~oO (  %X oh ~-O sY ~oZ ([ -o *Adx D96NK}^( ,(> (\ *0-*( u -!o. .*( u + ( u ,r(  o] o^ +9o ~ -( t( ,( (/ oh o -u2,o *[F0QQ( ,(o ,*{:s' o# rprJpo; o# rpr~ po; s rpoN o# r^;pr|;po; ( -o# r> prpo; + ( o Qo o" }o o" +{rpo QQ{t*( *0u; -ݏok - }F~  {G( 3ok Yo + o  ({ {G( o| ,( o} u,X}E}F {Do &* 0asp  }Go= s }D}E}Fs? q s o {Do &{FR{E*z(< ,( (> o3 *( *b,*{H{Io4 *0rsr }I}H(< ,;o= ,1{I(:  -s sY o_ *{Io4 (> *o\o3o\o( (> o5 *( *b,*{J{Ko6 *0st }K}J(< ,d( ,\{K(; o= (' ,( oh , -u sY o` *{Ko6 (> *( *,*{L{Mo7 {L( *0sv }M}L(< ,w{M-2..r0ps% ( o oj t9s`}M{M(: o= , -w sY oZ *{Mo7 *01/o ol Y +o o oj o Y /*0u 9o1 o 9o (Q oa o % ,qr>p(Y -6rLp(Y -2rZp(Y -/rdp(Y -+rrp(Y -'+.(+ *(, *(* *() *(( **6~(8 *6~(8 *6~(8 *0Mo: -(< ,oWoYo! - rpsE z o (I ~(8 *11p6~(8 *6~(8 *6~(8 *6~(8 *6~(8 *0(( o , ob &*0n( (c (< ,X( .O( o ol /<( ,4( od ( ( o ( oj u9(% *6(; *0}-( ( Q+QP, Pok +s- Q( ,3-/s- QP( ( o\oo oh +QPo\(% *0>".4(B ( oe . ( o u9s[o2 &*::p0H( o ol -.( ,%s' o oN ( o oo *( *&(, *0(D  o * * * *0(D  oo *0V YE((+&o oj t9*o Zoj t9*rpr"psd zZ{, {oe **0VQQQ :o i/*QQi1iYQPPi(f *0B (F ,3% ,. r#p(Y -*(Q (/ (Q (/ (< *{*"}*(H *N~ (I (G *N~ (I (G *o o -*o o 8*No 8o *0es s s s s s s s s s *( *Nr3p((z*(*NrUp((z*(<*6rep(+*6rep(+*Frkpr&p(+*6rkp(+*Frpr&p(+*6rp(+*FrVpr&p(+*(c (~ - rpsE zrVp(+*Frrpr&p(+*6rrp(+*>(\ (~ *Fr9pr&p(+*6r9p(+*FrQpr&p(+*(\ (~ - rkpsE zrQp(+*6rFp(+*6rFp(+*(c (~ ,(\ (~ ,, rpsE z*(*(*~o r/po %-&~ t*Jo r/po *o rSpo %- &~ uu*^o rSpuo *o r}po %- &~ uu*^o r}puo *o rpo %- &~ uu*^o rpuo *~o rpo %-&~ t*Jo rpo *o rpo %- &~ aa*^o rpao *~o r po %-&~ t*Jo r po *~o r;po %-&~ t*Jo r;po *~o rapo %-&~ t*Jo rapo *J|r~p(*N|r~p(*J|rp(*N|rp(*0`(((~ ,((~ , ((~ -((~ , (i ({({(*( *( -r'pr5ps z}*0J! {o o +o tM u,X o -u2 , o *$7 *v{o ( oj u*0G" +.{o oj u ,oW (Y ,*X {o ol 2*0k#/*  +&{o oj u, X% 3*X {o ol 2( rwp (U su z0k#/*  +&{o oj u,X 3*X {o ol 2( rwp (U su z{o o" %{X}*j{o%{X}*J{o o1 *0$u - rpsu z( *0h%-rprps z  +;{o oj u ,Xi3 rMpsu z%X XX {o ol 2*b{o o/ ( *{o ( o %{X}*{o o4 %{X}*{o ( o %{X}*:u( *6u( *6u( *:u( * *6u( *"( ** *sh zs *s *( }{o o }{}*~{{{. rpsE z*V}}(G *^( {o u*( *00{( {o ,{o u-(  *J( {o5 *V( } } *{ *{ *2{ o*2{ o*6r:p( +*6r:p( +*6rPp( +*6rPp( +*Frhpr&p(+*6rhp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Fr8pr&p(+*6r8p(+*Frdpr&p(+*6rdp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Fr pr&p(+*6r p(+*(*(i *(j *6rLp( +*6rLp( +*6r|p( +*6r|p( +*Frpr&p(+*6rp(+*6rp(n+*6rp(o+*Frpr&p(+*6rp(+*6rp( +*6rp( +*6rNp(+*6rNp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rp(+*6rp(+*Frprp(+*6rp(+*6r*p(n+*6r*p(o+*6rJp(p+*6rJp(q+*Frvpr&p(+*0~&(~ , rvp(+* ,G;o +  (Q ( , X Xi2d3 rvp(+*rpsu zFr%pr&p(+*0~' (~ -# ; o i2 i 0 , r%p(+*( rWp; (U su zFrpr&p(+*0T( (~ - ; o i 0 , rp(+*( rp(U su z6rp( +*6rp( +*6r%p( +*6r%p( +*( *"( *(*(k *Nr[p((z*(<*Nrkp((z*(<*j(ysq(p(r*Nrp((z*(\*&U(*6rp(r+*6rp(s+*6rp(t+*6rp(u+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frp ( +*6rp( +*0M( 3<( 3 ( (~ -( 3( (~ ,, r psE z*(*(*(l *(' sK ((*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*6rp(+*6rp(+*6r p(+*6r p(+*6r6p( +*6r6p( +*6rTp( +*6rTp( +*6rnp(+*6rnp(+*6rp(+*6rp(+*6rp(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*Fr,pr&p(+*6r,p(+*FrJpr&p(+*6rJp(+*6rhp(v+*6rhp(w+*(( -( ,( - rpsu z*0])(X o u ,G((~ -:((m ,o# rpr~ po; *o# rpr&po; *(B sK ((*Frpr&p(+*6rp(+*Fr7pr&p(+*6r7p(+*FrIpr&p(+*6rIp(+*Fr_pr&p(+*6r_p(+*Frwpr&p(+*6rwp(+*Frpr&p(+*6rp(+*Frpr&p(+*6rp(+*B(%-&r&p*"(*Frrpr&p(+*6rrp(+*>(< (~ *FrVpr&p(+*6rVp(+*6rkp(+*Rrkp(+(A *6rp(+*6rp(+*0*(t o o  rp ( %-&r&po*  3 o on *(o s i1op rpo! o o *0u+- rps zsq ,\ ; o +: :o i3o or Xi2*Rrps (E *0>,- rps z- rps z- r5ps z- rqps z- rps zos o  +7 o t o ,ot o -rprqpsd z o - u2,o o -rprqpsd zrIpoa oQ ( +E ou ,0(Q rpot (U ( Xi2rIpo ( sv ow oW 8o toR r> pox oT oR r0pox -+oT oR repox -+ oT (m   s,  oR rupox   -r&p+ oT    }  oy o :=u2,o oz *TDX"6o {0*Jo {0o~ *No {0o *{1*"}1*6o {2*Jo {2o~ *No {2o *{3*"}3*6o ( *0Do o s}0{0(Q rp oW (U oN o {0o" s}2{2(Q rp oW (U oN o {2o" {2o{1,{1{0o {3,{3{2o *o ( %-&{0o %- &{2o ***( * GIF89a?d\u㊯˻*?U~l!?,pH,al:MZثP,"C`|.TD 8P(8B="<*4}5+.c?this._cachedActiveTabIndex:this._activeTabIndex},set_activeTabIndex:function(i){var f=this,g=i;if(!f.get_isInitialized())f._cachedActiveTabIndex=g;else{if(g=f.get_tabs().length)g=f.get_tabs().length-1;if(g!=f._activeTabIndex){if(f._activeTabIndex!=c){var k=f.get_tabs()[f._activeTabIndex];k._set_active(b)}var j=f._activeTabIndex!=g;f._activeTabIndex=g;f._activeTabIndex!=c&&f.get_tabs()[f._activeTabIndex]._set_active(d);if(f._loaded&&j){if(f._onDemand){var h=f.get_tabs()[f._activeTabIndex];if(h._onDemandMode!=Sys.Extended.UI.OnDemandMode.None)if(h._onDemandMode==Sys.Extended.UI.OnDemandMode.Once&&h._wasLoaded==b||h._onDemandMode==Sys.Extended.UI.OnDemandMode.Always){f._pageRequestManager.beginAsyncPostBack([h._updatePanelID],a,a,b,a);h._wasLoaded=d}}f.raiseActiveTabChanged()}f.raisePropertyChanged(p)}}},get_tabs:function(){if(this._tabs==a)this._tabs=[];return this._tabs},get_activeTab:function(){return this._activeTabIndex>c?this.get_tabs()[this._activeTabIndex]:a},set_activeTab:function(b){var a=Array.indexOf(this.get_tabs(),b);if(a==c)throw Error.argument(e,Sys.Extended.UI.Resources.Tabs_ActiveTabArgumentOutOfRange);this.set_activeTabIndex(a)},get_autoPostBackId:function(){return this._autoPostBackId},set_autoPostBackId:function(a){this._autoPostBackId=a},get_scrollBars:function(){return this._scrollBars},set_scrollBars:function(b){var a=this;if(a._scrollBars!=b){a._scrollBars=b;a._invalidate();a.raisePropertyChanged(l)}},get_tabStripPlacement:function(){return this._tabStripPlacement},set_tabStripPlacement:function(b){var a=this;if(a._tabStripPlacement!=b){a._tabStripPlacement=b;a._invalidate();a.raisePropertyChanged("tabStripPlacement")}},get_useVerticalStripPlacement:function(){return this._useVerticalStripPlacement},set_useVerticalStripPlacement:function(b){var a=this;if(a._useVerticalStripPlacement!=b){a._useVerticalStripPlacement=b;a._invalidate();a.raisePropertyChanged("useVerticalStripPlacement")}},get_onDemand:function(){return this._onDemand},set_onDemand:function(b){var a=this;if(a._onDemand!=b){a._onDemand=b;a._invalidate();a.raisePropertyChanged("onDemand")}},initialize:function(){var a=this;Sys.Extended.UI.TabContainer.callBaseMethod(a,m);var b=a.get_element();a._header=$get(a.get_id()+"_header");a._body=$get(a.get_id()+"_body");$common.addCssClasses(b,["ajax__tab_container","ajax__tab_default"]);a._invalidate();if(a._onDemand)a._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();Sys.Application.add_load(a._app_onload$delegate)},dispose:function(){$clearHandlers(this.get_element());Sys.Application.remove_load(this._app_onload$delegate);Sys.Extended.UI.TabContainer.callBaseMethod(this,"dispose")},getFirstTab:function(d){for(var c=this.get_tabs(),b=0;b=0;b--)if(d||c[b].get_enabled())return c[b];return a},getNextTab:function(e){for(var b=this.get_tabs(),g=this.get_activeTabIndex(),c=1;cb._activeTabIndex?c:a},saveClientState:function(){for(var c=this.get_tabs(),b=[],a=0;a /// /// /// /// Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.DraggableListItem = function(e) { Sys.Extended.UI.DraggableListItem.initializeBase(this, [e]); this._data = null; this._handle = null; this._dragVisualTemplate = null; this._dragVisualTemplateInstance = null; this._mouseDownHandler = null; } Sys.Extended.UI.DraggableListItem.prototype = { dispose : function() { /// /// Dispose the behavior /// var e = this.get_element(); this.set_handle(null); Sys.Extended.UI.DraggableListItem.callBaseMethod(this, 'dispose'); }, get_data : function() { if (this._data == null) { var dragSource = this._findDragSource(); if (dragSource != null && Sys.Extended.UI.DragDropList.IsValidDataType(dragSource.get_dragDataType())) { return this.get_element(); } } return this._data; }, set_data : function(value) { if (this._data != value) { this._data = value; this.raisePropertyChanged('data'); } }, get_handle : function() { return this._handle; }, set_handle : function(value) { if (this._handle != null) { $removeHandler(this._handle, "mousedown", this.get_mouseDownHandler()); this._handle.__draggableBehavior = null; } if (value) { if (value.element) { value = value.element; } this._handle = value; this.raisePropertyChanged('handle'); this._handle.__draggableBehavior = this; $addHandler(this._handle, "mousedown", this.get_mouseDownHandler()); this._handle.__draggableBehavior = this; } else { this._handle = null; } }, get_mouseDownHandler : function() { if (this._mouseDownHandler == null) { this._mouseDownHandler = Function.createDelegate(this, this._onMouseDown); } return this._mouseDownHandler; }, get_dragVisualTemplate : function() { return this._dragVisualTemplate; }, set_dragVisualTemplate : function(value) { if (this._dragVisualTemplate != value) { this._dragVisualTemplate = value; this.raisePropertyChanged('dragVisualTemplate'); } }, _onMouseDown : function(ev) { window._event = ev.rawEvent; this._handle.__draggableBehavior._mouseDownHandlerInternal(ev); }, _mouseDownHandlerInternal : function(ev) { var ev = window.testEvent ? window.testEvent : ev; if (ev.button <= 1) { var dragSource = this._findDragSource(); if (dragSource != null) { var dragVisual = this._createDragVisual(); dragSource.startDragDrop(this.get_element(), this.get_data(), dragVisual); ev.returnValue = false; } else { } } else { } }, _createDragVisual : function() { var ev = window.testEvent ? window.testEvent : window.event; if (this._dragVisualTemplate != null) { if (this._dragVisualTemplateInstance == null) { this._dragVisualTemplateInstance = this._dragVisualTemplate.cloneElement(); } else if (!Sys.UI.DragDropManager._getInstance().hasParent(this._dragVisualTemplateInstance)) { this.get_element().appendChild(this._dragVisualTemplateInstance); } var location = { x: ev.clientX, y: ev.clientY }; location = Sys.UI.DragDropManager._getInstance().addPoints(location, Sys.UI.DragDropManager._getInstance().getScrollOffset(document.body, true)); $common.setLocation(this._dragVisualTemplateInstance, location); } return this._dragVisualTemplateInstance; }, _findDragSource : function() { var element = this.get_element(); while (element != null) { if (element.__dragDropList != null) { return element.__dragDropList; } element = element.parentNode; } return null; } } Sys.Extended.UI.DraggableListItem.registerClass('Sys.Extended.UI.DraggableListItem', Sys.Extended.UI.BehaviorBase); // (c) 2010 CodePlex Foundation (function(){var b="ExtendedPagedList";function a(){var c="indexChanged",b=";",a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.PagingBulletedListBehavior=function(c){var b=this;Sys.Extended.UI.PagingBulletedListBehavior.initializeBase(b,[c]);b._indexSizeValue=1;b._separatorValue=" - ";b._heightValue=a;b._maxItemPerPage=a;b._clientSortValue=false;b._selectIndexCssClassValue=a;b._unselectIndexCssClassValue=a;b._tabValue=[];b._tabValueObject=[];b._tabIndex=[];b._divContent=a;b._divContentIndex=a;b._divContentUl=a;b._prevIndexSelected=a;b._indexSelected=0;b._clickIndex=a};Sys.Extended.UI.PagingBulletedListBehavior.prototype={initialize:function(){var c=this;Sys.Extended.UI.PagingBulletedListBehavior.callBaseMethod(c,"initialize");var i=c.get_ClientState();if(i){var f=i.split(b);if(f.length){c._indexSelected=f[0];if(f[1]=="null")c._indexSizeValue=a;else c._indexSizeValue=f[1];if(f[2]=="null")c._maxItemPerPage=a;else c._maxItemPerPage=f[2];if(f[3]=="true")c._clientSortValue=true;else c._clientSortValue=false}}var g=c.get_element();c._divContent=document.createElement("div");g.parentNode.insertBefore(c._divContent,g);var e=g.childNodes;c._clickIndex=Function.createDelegate(c,c._onIndexClick);var h,j;c._divContentIndex=document.createElement("DIV");c._divContentIndex.style.marginBottom="5px";c._divContent.appendChild(c._divContentIndex);for(var d=0;d0)for(var b=-1,c=0;c0)for(var e="",b=-1,c=0;c0){a._unselectIndexCssClassValue&&Sys.UI.DomElement.removeCssClass(a._tabIndex[b],a._unselectIndexCssClassValue);a._selectIndexCssClassValue&&Sys.UI.DomElement.addCssClass(a._tabIndex[b],a._selectIndexCssClassValue);a._prevIndexSelected=a._tabIndex[b];a.raiseIndexChanged(a._tabIndex[b])}},_onIndexClick:function(c){var a=this,d=a.get_element(),b=c.target;a._selectIndexCssClassValue&&Sys.UI.DomElement.removeCssClass(a._prevIndexSelected,a._selectIndexCssClassValue);a._unselectIndexCssClassValue&&Sys.UI.DomElement.addCssClass(a._prevIndexSelected,a._unselectIndexCssClassValue);a._unselectIndexCssClassValue&&Sys.UI.DomElement.removeCssClass(b,a._unselectIndexCssClassValue);a._selectIndexCssClassValue&&Sys.UI.DomElement.addCssClass(b,a._selectIndexCssClassValue);a._prevIndexSelected=b;a._renderHtml(b.tag);a.raiseIndexChanged(b);c.preventDefault()},add_indexChanged:function(a){this.get_events().addHandler(c,a)},remove_indexChanged:function(a){this.get_events().removeHandler(c,a)},raiseIndexChanged:function(d){var a=this;a._indexSelected=d.tag;var e=a.get_events().getHandler(c);if(e){if(!d)d=Sys.EventArgs.Empty;e(a,d)}a.set_ClientState(d.tag+b+a.get_IndexSize()+b+a.get_MaxItemPerPage()+b+a.get_ClientSort())},get_tabIndex:function(){return this._tabIndex},get_tabValue:function(){return this._tabValue},_updateIndexAndView:function(b){var a=this;a._generateIndexAndTabForView();if(a._tabIndex.length>0)if(bf?f:a;var h=$get(d.multiHandleSliderTargetID);b._calculateMultiHandleSliderTargetValue(h,a,c);$common.tryFireEvent(b.get_element(),g)},_calculateClosestHandle:function(h){var a=this;for(var c=a._handleData[0],d=[a._handles],k=a._getOuterBounds(),b=0;b=h+d[j]){var f=a._handleData[j-1];if(f)c=f}}return c},_calculateMultiHandleSliderTargetValue:function(h,x,E){var a=this,e,l,g=a._minimum,f=a._maximum;if(a._handleUnderDrag&&!h){j=a._handleUnderDrag;h=$get(a._handleUnderDrag.multiHandleSliderTargetID);if(a._innerDrag){var z=Array.indexOf(a._handleData,j);e=a._handleData[z+1];if(!e)e=a._handleData[z-1];l=$get(e.multiHandleSliderTargetID)}}var j=h.Handle,d=h.value;if(d&&!E){if(typeof d!=="number")try{d=parseFloat(d)}catch(J){d=Number.NaN}if(isNaN(d))d=a._minimum;val=Math.max(Math.min(d,f),g)}else{var m=a._getBoundsInternal(j),p=a._getOuterBounds(),q=x?x-m.width/2:m.x-p.x,G=p.width-m.width,F=q/G;val=Math.max(Math.min(d,f),g);val=q===0?g:q===p.width-m.width?f:g+F*(f-g)}if(a._steps>0)val=a._getNearestStepValue(val);val=Math.max(Math.min(val,f),g);for(var u=[],w=[],o=0,r=0,n,A=c,k=0;k0){var C=parseFloat($get(u[o-1].ControlID).value);val=Math.max(val,C);n=val===C}if(r>0){var B=parseFloat($get(w[0].ControlID).value);val=Math.min(val,B);n=val===B}if(e){var H=val-parseFloat(d),v=parseFloat(l.value),i=v+H,y=Array.indexOf(a._handleData,e)+1;if(y(D||f)){i=v;val=d;n=c}}if(!n&&(Math.max(val,f)===f&&Math.min(val,g)===g)){a.beginUpdate();val=Math.max(Math.min(val,f),g);a._setMultiHandleSliderTargetValue(h,val);e&&a._setMultiHandleSliderTargetValue(l,i);a.endUpdate()}else{a.beginUpdate();if(a._handles===1)a._setMultiHandleSliderTargetValue(h,val);else{h.value=val;j.Value=val;a._setHandlePosition(j,c)}if(e){l.value=i;e.Value=i;a._setHandlePosition(e,c)}a.endUpdate()}return val},_cancelDrag:function(){if(Sys.Extended.UI.MultiHandleSliderBehavior.DropPending===this){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=a;this._selectStartPending&&$removeHandler(document,j,this._selectStartHandler)}},_createHandles:function(){var a=this;for(var c=0;c";var q="
"+v+"
";a._outer.innerHTML+=q+t}a._handleData=[a._handles];for(c=0;c1&&a._showInnerRail){a._inner=document.createElement(i);a._inner.id=a.get_id()+"_inner";a._inner.style.outline=f;a._inner.tabIndex=-1}},_createOuterRail:function(){var a=this;a._outer=document.createElement(i);a._outer.id=a.get_id()+"_outer";a._outer.style.outline=f;a._outer.tabIndex=-1},_createWrapper:function(){this._wrapper=document.createElement(i);this._wrapper.style.position="relative";this._wrapper.style.outline=f},_disposeHandlers:function(){var c=this;if(!c._isReadOnly){$removeHandler(document,"mouseup",c._mouseUpHandler);$removeHandler(document,s,c._mouseOutHandler);if(c._outer){if(c._outer.addEventListener)c._outer.removeEventListener(t,c._mouseWheelHandler,b);else c._outer.detachEvent(u,c._mouseWheelHandler);$common.removeHandlers(c._outer,c._outerDelegates)}for(var d=0;d=this._minimum||b<=this._maximum){var c=a&&a.nodeName===h;if(c)a.value=b;else if(a)a.innerHTML=b}}},_enforceElementPositioning:function(){var b=this,a={position:b.get_element().style.position,top:b.get_element().style.top,right:b.get_element().style.right,bottom:b.get_element().style.bottom,left:b.get_element().style.left};if(a.position!==d)b._wrapper.style.position=a.position;if(a.top!==d)b._wrapper.style.top=a.top;if(a.right!==d)b._wrapper.style.right=a.right;if(a.bottom!==d)b._wrapper.style.bottom=a.bottom;if(a.left!==d)b._wrapper.style.left=a.left},_getNearestStepValue:function(b){var a=this;if(a._steps===0)return b;var c=a._maximum-a._minimum;if(c===0)return b;if(a._steps-1!==0)var d=c/(a._steps-1);else return b;return Math.round(b/d)*d},_getStepValues:function(){var a=this,c=[a._steps],e=a._maximum-a._minimum,d=e/(a._steps-1);c[0]=a._minimum;for(var b=1;b1?b._handleData[j]:a;if(f){var h=parseInt(b._getBoundsInternal(g).width,10),c=parseInt(b._isVertical?g.style.top:g.style.left,10),d=parseInt(b._isVertical?f.style.top:f.style.left,10),k=parseInt(b._multiHandleSliderTargets[i].Offset,10),l=parseInt(b._multiHandleSliderTargets[j].Offset,10);c+=k;d+=l;if(b._isVertical){b._inner.style.top=c+e;b._inner.style.height=d+h-c+e}else{b._inner.style.left=c+e;b._inner.style.width=d+h-c+e}if(b._innerRailStyle===Sys.Extended.UI.MultiHandleInnerRailStyle.SlidingDoors)b._inner.style.backgroundPosition=b._isVertical?"0 -"+c+e:"-"+c+"px 0"}}},_initializeMultiHandleSliderTarget:function(d,e,c){var b=this;if(d){var a=$get(d);if(c.Value)a.value=c.Value;a.Handle=c;a.Decimals=e;a.OldValue=a.value;a.onchange="setValue(this, "+a.value+")";if(!a.Decimals)a.Decimals=0;var f=a&&a.nodeName===h;if(f){a.KeyPressHandler=Function.createDelegate(b,b._onMultiHandleSliderTargetKeyPressed);a.ChangeHandler=Function.createDelegate(b,b._onMultiHandleSliderTargetChange);$addHandler(a,v,a.KeyPressHandler);$addHandler(a,g,a.ChangeHandler)}}},_initializeSlider:function(){var a=this;Sys.Extended.UI.DragDrop.registerDropTarget(a);a._initializeHandles();a._initializeHandlers();a._initializeInnerRail();a._initialized=c;a._raiseEvent(m)},_resetDragHandle:function(b){var a=$common.getBounds(b);$common.setLocation(b.DragHandle,{x:a.x,y:a.y})},_resolveNamingContainer:function(){var a=this;if(a._isServerControl&&a._multiHandleSliderTargets&&!a._boundControlID)for(var c=a._clientStateFieldID.lastIndexOf(a._id),d=a._clientStateFieldID.substring(0,c),b=0;b0&&a._setMultiHandleSliderTargetValue(b,b.value);a._calculateMultiHandleSliderTargetValue(b)}else a._setMultiHandleSliderTargetValue(b,b.OldValue);a.endUpdate()},_slideMultiHandleSliderTarget:function(i,g){var b=this,d=$get(i),j=d.value,c,a;if(b._steps>0){var e=b._getStepValues(),f=b._getNearestStepValue(j);c=f;if(g){for(a=b._steps-1;a>-1;a--)if(e[a]f){c=e[a];break}}else{var h=parseFloat(d.value);c=g?h-parseFloat(b._increment):h+parseFloat(b._increment)}d.value=c;b._setValueFromMultiHandleSliderTarget(d);return d.value==c},_startDragDrop:function(b){this._resetDragHandle(b);this._handleUnderDrag=b;Sys.Extended.UI.DragDrop.startDragDrop(this,b.DragHandle,a)},_onAnimationEnded:function(){this._initializeInnerRail()},_onAnimationStep:function(){this._initializeInnerRail()},_onHideDrag:function(b,a){this.className=a.custom&&a.custom.length>0?a.custom:a.vertical?k:l},_onHideHover:function(b,a){this.className=a.custom&&a.custom.length>0?a.custom:a.vertical?"ajax__multi_slider_default handle_vertical":"ajax__multi_slider_default handle_horizontal"},_onInnerRailClick:function(d){var a=this;if(a._enableRailClick){var e=d.target;if(e===a._inner&&!a._blockInnerClick){a._animationPending=c;a._onInnerRailClicked(d)}else a._blockInnerClick=b}},_onInnerRailClicked:function(b){var a=this._calculateInnerRailOffset(b);this._calculateClick(a)},_onKeyDown:function(e){if(this._enableKeyboard){var d=new Sys.UI.DomEvent(e),a=b;switch(d.keyCode||d.rawEvent.keyCode){case Sys.UI.Key.up:case Sys.UI.Key.left:if(!a){this._handleSlide(c);d.preventDefault();a=c}return b;case Sys.UI.Key.down:case Sys.UI.Key.right:if(!a){this._handleSlide(b);d.preventDefault();a=c}return b;default:return b}}},_onMouseOver:function(){this._outer.focus()},_onMouseWheel:function(c){var a=0;if(c.wheelDelta){a=c.wheelDelta/120;if(Sys.Browser.agent===Sys.Browser.Opera)a=-a}else if(c.detail)a=-c.detail/3;a&&this._handleSlide(a<=0);c.preventDefault&&c.preventDefault();return b},_onMouseUp:function(a){window._event=a;a.preventDefault();this._cancelDrag()},_onMouseOut:function(a){window._event=a;a.preventDefault();this._outer.blur();this._handleUnderDrag&&this._cancelDrag()},_onMouseOutInner:function(a){window._event=a;a.preventDefault();this._inner.blur();this._innerDrag&&this._cancelDrag()},_onMouseDown:function(b){var a=this;window._event=b;b.preventDefault();if(!Sys.Extended.UI.MultiHandleSliderBehavior.DropPending){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=a;$addHandler(document,j,a._selectStartHandler);a._selectStartPending=c;var d=b.target;a._startDragDrop(d)}},_onMouseDownInner:function(a){window._event=a;a.preventDefault();if(this._enableInnerRangeDrag)if(!this._innerDragFlag)this._innerDragFlag=c},_onMouseUpInner:function(){if(this._enableInnerRangeDrag)this._innerDragFlag=b},_onMouseMoveInner:function(d){var a=this;window._event=d;d.preventDefault();if(a._enableInnerRangeDrag)if(!a._innerDrag&&a._innerDragFlag){a._innerDragFlag=b;if(!Sys.Extended.UI.MultiHandleSliderBehavior.DropPending){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=a;$addHandler(document,j,a._selectStartHandler);a._selectStartPending=c;a._innerDrag=c;var f=a._calculateInnerRailOffset(d),e=a._calculateClosestHandle(f);a._startDragDrop(e)}}},_onMultiHandleSliderTargetChange:function(a){this._animationPending=c;var b=a.target;this._setValueFromMultiHandleSliderTarget(b);this._initializeInnerRail();a.preventDefault()},_onMultiHandleSliderTargetKeyPressed:function(d){var a=new Sys.UI.DomEvent(d);if(a.charCode===13){this._animationPending=c;var b=a.target;this._setValueFromMultiHandleSliderTarget(b);this._initializeInnerRail();a.preventDefault()}},_onOuterRailClick:function(b){var a=this;if(a._enableRailClick){var d=b.target;if(d===a._outer){a._animationPending=c;a._onOuterRailClicked(b)}}},_onOuterRailClicked:function(a){var b=this._isVertical?a.offsetY:a.offsetX;this._calculateClick(b)},_onShowDrag:function(b,a){this.className=a.custom&&a.custom.length>0?a.custom:a.vertical?"ajax__multi_slider_default handle_vertical_down":"ajax__multi_slider_default handle_horizontal_down"},_onShowHover:function(b,a){this.className=a.custom&&a.custom.length>0?a.custom:a.vertical?"ajax__multi_slider_default handle_vertical_hover":"ajax__multi_slider_default handle_horizontal_hover"},get_dragDataType:function(){return"HTML"},getDragData:function(){return this._handleUnderDrag},get_dragMode:function(){return Sys.Extended.UI.DragMode.Move},onDragStart:function(){this._resetDragHandle(this._handleUnderDrag);this._raiseEvent(o)},onDrag:function(){var d=this,f=d._getBoundsInternal(d._handleUnderDrag.DragHandle),h=d._getBoundsInternal(d._handleUnderDrag),g=d._getOuterBounds(),e;if(d._isVertical)e={y:f.x-g.x,x:0};else e={x:f.x-g.x,y:0};$common.setLocation(d._handleUnderDrag,e);d._calculateMultiHandleSliderTargetValue(a,a,c);d._steps>1&&d._setHandlePosition(d._handleUnderDrag,b);d._raiseEvent(p)},onDragEnd:function(){var c=this;c._initializeInnerRail();c._raiseChangeOnlyOnMouseUp&&$common.tryFireEvent(c.get_element(),g);c._innerDrag=b;c._handleUnderDrag=a;c._raiseEvent(q)},get_dropTargetElement:function(){return document.forms[0]},canDrop:function(b,a){return a=="HTML"},drop:Function.emptyMethod,onDragEnterTarget:Function.emptyMethod,onDragLeaveTarget:Function.emptyMethod,onDragInTarget:Function.emptyMethod,_IEDragDropHandler:function(a){a.preventDefault()},_onSelectStart:function(a){a.preventDefault();return b},_getOuterBounds:function(){return this._getBoundsInternal(this._outer)},_getInnerBounds:function(){return this._getBoundsInternal(this._inner)},_getBoundsInternal:function(b){var a=$common.getBounds(b);if(this._isVertical)a={x:a.y,y:a.x,height:a.width,width:a.height,right:a.right,left:a.left,bottom:a.bottom,location:{x:a.y,y:a.x},size:{width:a.height,height:a.width}};else a={x:a.x,y:a.y,height:a.height,width:a.width,right:a.right,left:a.left,bottom:a.bottom,location:{x:a.x,y:a.y},size:{width:a.width,height:a.height}};return a},_raiseEvent:function(c,a){var b=this.get_events().getHandler(c);if(b){if(!a)a=Sys.EventArgs.Empty;b(this,a)}},get_Value:function(){var a=$get(this._boundControlID);return a.value?a.value:0},set_Value:function(c){var a=this,b=$get(a._multiHandleSliderTargets[0].ControlID);a.beginUpdate();a._setMultiHandleSliderTargetValue(b,a._getNearestStepValue(c));a.endUpdate();$common.tryFireEvent(b,g)},get_minimum:function(){return this._minimum},set_minimum:function(a){if(a!==this._minimum){this._minimum=a;this.raisePropertyChanged("minimum")}},get_maximum:function(){return this._maximum},set_maximum:function(a){if(a!==this._maximum){this._maximum=a;this.raisePropertyChanged("maximum")}},get_length:function(){return this._length},set_length:function(a){if(a!==this._length){this._length=a;this.raisePropertyChanged("length")}},get_steps:function(){return this._steps},set_steps:function(c){var a=this,b=a._steps;a._steps=Math.abs(c);a._steps=a._steps===1?2:a._steps;b!==a._steps&&a.raisePropertyChanged("steps")},get_orientation:function(){return this._isVertical},set_orientation:function(a){if(a!==this._isVertical){this._orientation=a;this.raisePropertyChanged("orientation")}},get_enableHandleAnimation:function(){return this._enableHandleAnimation},set_enableHandleAnimation:function(a){if(a!==this._enableHandleAnimation){this._enableHandleAnimation=a;this.raisePropertyChanged("enableHandleAnimation")}},get_handleAnimationDuration:function(){return this._handleAnimationDuration},set_handleAnimationDuration:function(a){if(a!==this._handleAnimationDuration){this._handleAnimationDuration=a;this.raisePropertyChanged("handleAnimationDuration")}},get_raiseChangeOnlyOnMouseUp:function(){return this._raiseChangeOnlyOnMouseUp},set_raiseChangeOnlyOnMouseUp:function(a){if(a!==this._raiseChangeOnlyOnMouseUp){this._raiseChangeOnlyOnMouseUp=a;this.raisePropertyChanged("raiseChangeOnlyOnMouseUp")}},get_showInnerRail:function(){return this._showInnerRail},set_showInnerRail:function(a){if(a!==this._showInnerRail){this._showInnerRail=a;this.raisePropertyChanged("showInnerRail")}},get_showHandleHoverStyle:function(){return this._showHoverStyle},set_showHandleHoverStyle:function(a){if(a!==this._showHoverStyle){this._showHoverStyle=a;this.raisePropertyChanged("showHoverStyle")}},get_showHandleDragStyle:function(){return this._showDragStyle},set_showHandleDragStyle:function(a){if(a!==this._showDragStyle){this._showDragStyle=a;this.raisePropertyChanged("showDragStyle")}},get_innerRailStyle:function(){return this._innerRailStyle},set_innerRailStyle:function(a){if(a!==this._innerRailStyle){this._innerRailStyle=a;this.raisePropertyChanged("innerRailStyle")}},get_enableInnerRangeDrag:function(){return this._enableInnerRangeDrag},set_enableInnerRangeDrag:function(a){if(a!==this._enableInnerRangeDrag){this._enableInnerRangeDrag=a;this.raisePropertyChanged("allowInnerRangeDrag")}},get_enableRailClick:function(){return this._enableRailClick},set_enableRailClick:function(a){if(a!==this._enableRailClick){this._enableRailClick=a;this.raisePropertyChanged("allowRailClick")}},get_isReadOnly:function(){return this._isReadOnly},set_isReadOnly:function(a){if(a!==this._isReadOnly){this._isReadOnly=a;this.raisePropertyChanged("isReadOnly")}},get_enableKeyboard:function(){return this._enableKeyboard},set_enableKeyboard:function(a){if(a!==this._enableKeyboard){this._enableKeyboard=a;this.raisePropertyChanged("enableKeyboard")}},get_enableMouseWheel:function(){return this._enableMouseWheel},set_enableMouseWheel:function(a){if(a!==this._enableMouseWheel){this._enableMouseWheel=a;this.raisePropertyChanged("enableMouseWheel")}},get_increment:function(){return this._increment},set_increment:function(a){if(a!==this._increment){this._increment=a;this.raisePropertyChanged("increment")}},get_tooltipText:function(){return this._tooltipText},set_tooltipText:function(a){if(a!==this._tooltipText){this._tooltipText=a;this.raisePropertyChanged("tooltipText")}},get_multiHandleSliderTargets:function(){return this._multiHandleSliderTargets},set_multiHandleSliderTargets:function(a){if(a!==this._multiHandleSliderTargets){this._multiHandleSliderTargets=a;this.raisePropertyChanged("multiHandleSliderTargets")}},get_cssClass:function(){return this._cssClass},set_cssClass:function(a){if(a!==this._cssClass){this._cssClass=a;this.raisePropertyChanged("cssClass")}},get_boundControlID:function(){return this._boundControlID},set_boundControlID:function(c){var b=this;b._boundControlID=c;if(b._boundControlID)b._boundControl=$get(b._boundControlID);else b._boundControl=a},get_handleCssClass:function(){return this._handleCssClass},set_handleCssClass:function(a){this._handleCssClass=a},get_handleImageUrl:function(){return this._handleImageUrl},set_handleImageUrl:function(a){this._handleImageUrl=a},get_railCssClass:function(){return this._railCssClass},set_railCssClass:function(a){this._railCssClass=a},get_decimals:function(){return this._decimals},set_decimals:function(a){this._decimals=a},add_load:function(a){this.get_events().addHandler(m,a)},remove_load:function(a){this.get_events().removeHandler(m,a)},add_dragStart:function(a){this.get_events().addHandler(o,a)},remove_dragStart:function(a){this.get_events().removeHandler(o,a)},add_drag:function(a){this.get_events().addHandler(p,a)},remove_drag:function(a){this.get_events().removeHandler(p,a)},add_dragEnd:function(a){this.get_events().addHandler(q,a)},remove_dragEnd:function(a){this.get_events().removeHandler(q,a)},add_valueChanged:function(a){this.get_events().addHandler(n,a)},remove_valueChanged:function(a){this.get_events().removeHandler(n,a)}};Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=a;Sys.Extended.UI.MultiHandleSliderBehavior.registerClass("Sys.Extended.UI.MultiHandleSliderBehavior",Sys.Extended.UI.BehaviorBase);Sys.registerComponent(Sys.Extended.UI.MultiHandleSliderBehavior,{name:"multiHandleSlider"})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedBase","ExtendedDragDrop","ExtendedAnimations"],a);else a()})();O// (c) 2010 CodePlex Foundation //!/ (function() { function execute() { Type._registerScript("MicrosoftAjaxWebServices.js", ["MicrosoftAjaxNetwork.js"]); var $type, $prototype; Type.registerNamespace('Sys.Net'); $type = Sys.Net.WebServiceProxy = function WebServiceProxy() { var type = Object.getType(this); if (type._staticInstance && (typeof(type._staticInstance.get_enableJsonp) === "function")) { this._jsonp = (type._staticInstance.get_enableJsonp()); } } $type.prototype = { get_timeout: function WebServiceProxy$get_timeout() { /// The timeout in milliseconds for the service. if (arguments.length !== 0) throw Error.parameterCount(); return this._timeout || 0; }, set_timeout: function WebServiceProxy$set_timeout(value) { var e = Function._validateParams(arguments, [{name: "value", type: Number}]); if (e) throw e; if (value < 0) { throw Error.argumentOutOfRange('value', value, Sys.Res.invalidTimeout); } this._timeout = value; }, get_defaultUserContext: function WebServiceProxy$get_defaultUserContext() { /// The default userContext for this service. if (arguments.length !== 0) throw Error.parameterCount(); return (typeof(this._userContext) === "undefined") ? null : this._userContext; }, set_defaultUserContext: function WebServiceProxy$set_defaultUserContext(value) { var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]); if (e) throw e; this._userContext = value; }, get_defaultSucceededCallback: function WebServiceProxy$get_defaultSucceededCallback() { /// Returns the default succeededCallback for this service. if (arguments.length !== 0) throw Error.parameterCount(); return this._succeeded || null; }, set_defaultSucceededCallback: function WebServiceProxy$set_defaultSucceededCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._succeeded = value; }, get_defaultFailedCallback: function WebServiceProxy$get_defaultFailedCallback() { /// Returns the default failedCallback for this service. if (arguments.length !== 0) throw Error.parameterCount(); return this._failed || null; }, set_defaultFailedCallback: function WebServiceProxy$set_defaultFailedCallback(value) { var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]); if (e) throw e; this._failed = value; }, get_enableJsonp: function WebServiceProxy$get_enableJsonp() { /// Specifies whether the service supports JSONP for cross domain calling. if (arguments.length !== 0) throw Error.parameterCount(); return !!this._jsonp; }, set_enableJsonp: function WebServiceProxy$set_enableJsonp(value) { var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]); if (e) throw e; this._jsonp = value; }, get_path: function WebServiceProxy$get_path() { /// The path to this service. if (arguments.length !== 0) throw Error.parameterCount(); return this._path || null; }, set_path: function WebServiceProxy$set_path(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; this._path = value; }, get_jsonpCallbackParameter: function WebServiceProxy$get_jsonpCallbackParameter() { /// Specifies the parameter name that contains the callback function name for a JSONP request. if (arguments.length !== 0) throw Error.parameterCount(); return this._callbackParameter || "callback"; }, set_jsonpCallbackParameter: function WebServiceProxy$set_jsonpCallbackParameter(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; this._callbackParameter = value; }, _invoke: function WebServiceProxy$_invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext) { /// /// Path to the webservice /// Method to invoke /// Controls whether requests use HttpGet /// Method args. /// Success callback /// Failure callback /// Success callback /// Returns the request that was sent var e = Function._validateParams(arguments, [ {name: "servicePath", type: String}, {name: "methodName", type: String}, {name: "useGet", type: Boolean}, {name: "params"}, {name: "onSuccess", type: Function, mayBeNull: true, optional: true}, {name: "onFailure", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; onSuccess = onSuccess || this.get_defaultSucceededCallback(); onFailure = onFailure || this.get_defaultFailedCallback(); if (userContext === null || typeof userContext === 'undefined') userContext = this.get_defaultUserContext(); return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, this.get_timeout(), this.get_enableJsonp(), this.get_jsonpCallbackParameter()); } } $type.registerClass('Sys.Net.WebServiceProxy'); $type.invoke = function WebServiceProxy$invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, timeout, enableJsonp, jsonpCallbackParameter) { /// /// Path to the webservice /// Method to invoke /// Controls whether requests use HttpGet /// Method args. /// Success callback /// Failure callback /// Success callback /// Timeout in milliseconds /// Whether to use JSONP if the servicePath is for a different domain (default is true). /// The name of the callback parameter for JSONP request (default is callback). /// Returns the request that was sent (null for JSONP requests). var e = Function._validateParams(arguments, [ {name: "servicePath", type: String}, {name: "methodName", type: String, mayBeNull: true, optional: true}, {name: "useGet", type: Boolean, mayBeNull: true, optional: true}, {name: "params", mayBeNull: true, optional: true}, {name: "onSuccess", type: Function, mayBeNull: true, optional: true}, {name: "onFailure", type: Function, mayBeNull: true, optional: true}, {name: "userContext", mayBeNull: true, optional: true}, {name: "timeout", type: Number, mayBeNull: true, optional: true}, {name: "enableJsonp", type: Boolean, mayBeNull: true, optional: true}, {name: "jsonpCallbackParameter", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var schemeHost = (enableJsonp !== false) ? Sys.Net.WebServiceProxy._xdomain.exec(servicePath) : null, tempCallback, jsonp = schemeHost && (schemeHost.length === 3) && ((schemeHost[1] !== location.protocol) || (schemeHost[2] !== location.host)); useGet = jsonp || useGet; if (jsonp) { jsonpCallbackParameter = jsonpCallbackParameter || "callback"; tempCallback = "_jsonp" + Sys._jsonp++; } if (!params) params = {}; var urlParams = params; if (!useGet || !urlParams) urlParams = {}; var error, timeoutcookie = null, body = null, url = Sys.Net.WebRequest._createUrl(methodName ? (servicePath+"/"+encodeURIComponent(methodName)) : servicePath, urlParams, jsonp ? (jsonpCallbackParameter + "=Sys." + tempCallback) : null); if (jsonp) { function jsonpComplete(data, statusCode) { if (timeoutcookie !== null) { window.clearTimeout(timeoutcookie); timeoutcookie = null; } delete Sys[tempCallback]; tempCallback = null; if ((typeof(statusCode) !== "undefined") && (statusCode !== 200)) { if (onFailure) { error = new Sys.Net.WebServiceError(false, data.Message || String.format(Sys.Res.webServiceFailedNoMsg, methodName), data.StackTrace || null, data.ExceptionType || null, data); error._statusCode = statusCode; onFailure(error, userContext, methodName); } else { if (data.StackTrace && data.Message) { error = data.StackTrace + "-- " + data.Message; } else { error = data.StackTrace || data.Message; } error = String.format(error ? Sys.Res.webServiceFailed : Sys.Res.webServiceFailedNoMsg, methodName, error); throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error)); } } else if (onSuccess) { onSuccess(data, userContext, methodName); } } Sys[tempCallback] = jsonpComplete; Sys._loadJsonp(url, function() { if (tempCallback) { jsonpComplete({ Message: String.format(Sys.Res.webServiceFailedNoMsg, methodName) }, -1); } }); return null; } var request = new Sys.Net.WebRequest(); request.set_url(url); request.get_headers()['Content-Type'] = 'application/json; charset=utf-8'; if (!useGet) { body = Sys.Serialization.JavaScriptSerializer.serialize(params); if (body === "{}") body = ""; } request.set_body(body); request.add_completed(onComplete); if (timeout > 0) request.set_timeout(timeout); request.invoke(); function onComplete(response, eventArgs) { if (response.get_responseAvailable()) { var ex, statusCode = response.get_statusCode(); var result = null; var isJson; try { var contentType = response.getResponseHeader("Content-Type"); isJson = contentType.startsWith("application/json"); result = isJson ? response.get_object() : (contentType.startsWith("text/xml") ? response.get_xml() : response.get_responseData()); } catch (ex) { } var error = response.getResponseHeader("jsonerror"); var errorObj = (error === "true"); if (errorObj) { if (result) { result = new Sys.Net.WebServiceError(false, result.Message, result.StackTrace, result.ExceptionType, result); } } else if (isJson) { result = (!result || (typeof(result.d) === "undefined")) ? result : result.d; } if (((statusCode < 200) || (statusCode >= 300)) || errorObj) { if (onFailure) { if (!result || !errorObj) { result = new Sys.Net.WebServiceError(false /*timedout*/, String.format(Sys.Res.webServiceFailedNoMsg, methodName)); } result._statusCode = statusCode; onFailure(result, userContext, methodName); } else { if (result && errorObj) { error = result.get_exceptionType() + "-- " + result.get_message(); } else { error = response.get_responseData(); } throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error)); } } else if (onSuccess) { onSuccess(result, userContext, methodName); } } else { var timedOut = response.get_timedOut(), msg = String.format((timedOut ? Sys.Res.webServiceTimedOut : Sys.Res.webServiceFailedNoMsg), methodName); if (onFailure) { onFailure(new Sys.Net.WebServiceError(timedOut, msg, "", ""), userContext, methodName); } else { throw Sys.Net.WebServiceProxy._createFailedError(methodName, msg); } } } return request; } $type._createFailedError = function WebServiceProxy$_createFailedError(methodName, errorMessage) { var displayMessage = "Sys.Net.WebServiceFailedException: " + errorMessage; var e = Error.create(displayMessage, { 'name': 'Sys.Net.WebServiceFailedException', 'methodName': methodName }); e.popStackFrame(); return e; } $type._defaultFailedCallback = function WebServiceProxy$_defaultFailedCallback(err, methodName) { var error = err.get_exceptionType() + "-- " + err.get_message(); throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error)); } $type._generateTypedConstructor = function WebServiceProxy$_generateTypedConstructor(type) { return function(properties) { if (properties) { for (var name in properties) { this[name] = properties[name]; } } this.__type = type; } } Sys._jsonp = 0; $type._xdomain = /^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/; Sys._loadJsonp = function _loadJsonp(src, callback) { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = src; var attachEvent = script.attachEvent; function onEvent() { if (!attachEvent || /loaded|complete/.test(script.readyState)) { if (attachEvent) { script.detachEvent("onreadystatechange", onEvent); } else { script.removeEventListener("load", onEvent, false); script.removeEventListener("error", onEvent, false); } callback.apply(script); script = null; } } if (attachEvent) { script.attachEvent("onreadystatechange", onEvent); } else { script.addEventListener("load", onEvent, false); script.addEventListener("error", onEvent, false); } Sys.get("head").appendChild(script); } $type = Sys.Net.WebServiceError = function WebServiceError(timedOut, message, stackTrace, exceptionType, errorObject) { /// Represents a webservice error /// Whether the service timed out. /// The error message. /// The stack trace of the error. /// The server exception type. /// The raw error information. var e = Function._validateParams(arguments, [ {name: "timedOut", type: Boolean}, {name: "message", type: String, mayBeNull: true}, {name: "stackTrace", type: String, mayBeNull: true, optional: true}, {name: "exceptionType", type: String, mayBeNull: true, optional: true}, {name: "errorObject", type: Object, mayBeNull: true, optional: true} ]); if (e) throw e; this._timedOut = timedOut; this._message = message; this._stackTrace = stackTrace; this._exceptionType = exceptionType; this._errorObject = errorObject; this._statusCode = -1; } $type.prototype = { get_timedOut: function WebServiceError$get_timedOut() { /// Whether the service failed due to timeout. if (arguments.length !== 0) throw Error.parameterCount(); return this._timedOut; }, get_statusCode: function WebServiceError$get_statusCode() { /// Int representing the status of the response. if (arguments.length !== 0) throw Error.parameterCount(); return this._statusCode; }, get_message: function WebServiceError$get_message() { /// Error message if (arguments.length !== 0) throw Error.parameterCount(); return this._message; }, get_stackTrace: function WebServiceError$get_stackTrace() { /// Stack trace of the error. if (arguments.length !== 0) throw Error.parameterCount(); return this._stackTrace || ""; }, get_exceptionType: function WebServiceError$get_exceptionType() { /// Exception type of the error. if (arguments.length !== 0) throw Error.parameterCount(); return this._exceptionType || ""; }, get_errorObject: function WebServiceError$get_errorObject() { /// The raw error object returned by the service. if (arguments.length !== 0) throw Error.parameterCount(); return this._errorObject || null; } } $type.registerClass('Sys.Net.WebServiceError'); } if (window.Sys && Sys.loader) { Sys.loader.registerScript("WebServices", null, execute); } else { execute(); } })(); 7~// (c) 2010 CodePlex Foundation //!/ (function() { function execute() { Type._registerScript("MicrosoftAjaxNetwork.js", ["MicrosoftAjaxSerialization.js"]); var $type, $prototype; if (!window.XMLHttpRequest) { window.XMLHttpRequest = function window$XMLHttpRequest() { var ex, progIDs = [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ]; for (var i = 0, l = progIDs.length; i < l; i++) { try { return new ActiveXObject(progIDs[i]); } catch (ex) { } } return null; } } Type.registerNamespace('Sys.Net'); $type = Sys.Net.WebRequestExecutor = function WebRequestExecutor() { /// Base class for WebRequestExecutors which handle the actual execution of a WebRequest if (arguments.length !== 0) throw Error.parameterCount(); this._webRequest = null; this._resultObject = null; } $type.prototype = { get_started: function WebRequestExecutor$get_started() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_responseAvailable: function WebRequestExecutor$get_responseAvailable() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_timedOut: function WebRequestExecutor$get_timedOut() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_aborted: function WebRequestExecutor$get_aborted() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_responseData: function WebRequestExecutor$get_responseData() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_statusCode: function WebRequestExecutor$get_statusCode() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_statusText: function WebRequestExecutor$get_statusText() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, get_xml: function WebRequestExecutor$get_xml() { /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, executeRequest: function WebRequestExecutor$executeRequest() { /// Begins execution of the request. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, abort: function WebRequestExecutor$abort() { /// Aborts the request. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, getAllResponseHeaders: function WebRequestExecutor$getAllResponseHeaders() { /// Returns all the responses header. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); }, getResponseHeader: function WebRequestExecutor$getResponseHeader(header) { /// Returns a response header. /// The requested header. var e = Function._validateParams(arguments, [ {name: "header", type: String} ]); if (e) throw e; throw Error.notImplemented(); }, get_webRequest: function WebRequestExecutor$get_webRequest() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._webRequest; }, _set_webRequest: function WebRequestExecutor$_set_webRequest(value) { if (this.get_started()) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'set_webRequest')); } this._webRequest = value; }, get_object: function WebRequestExecutor$get_object() { /// The JSON eval'd response. if (arguments.length !== 0) throw Error.parameterCount(); var result = this._resultObject; if (!result) { this._resultObject = result = Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData()); } return result; } } $type.registerClass('Sys.Net.WebRequestExecutor'); Sys.Net.XMLDOM = function XMLDOM(markup) { /// Creates an XML document from an XML string. /// The XML string to parse. var e = Function._validateParams(arguments, [ {name: "markup", type: String} ]); if (e) throw e; if (!window.DOMParser) { var ex, progIDs = [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' ]; for (var i = 0, l = progIDs.length; i < l; i++) { try { var xmlDOM = new ActiveXObject(progIDs[i]); xmlDOM.async = false; xmlDOM.loadXML(markup); xmlDOM.setProperty('SelectionLanguage', 'XPath'); return xmlDOM; } catch (ex) { } } } else { try { var domParser = new window.DOMParser(); return domParser.parseFromString(markup, 'text/xml'); } catch (ex) { } } return null; } $type = Sys.Net.XMLHttpExecutor = function XMLHttpExecutor() { /// XMLHttpExecutor if (arguments.length !== 0) throw Error.parameterCount(); Sys.Net.XMLHttpExecutor.initializeBase(this); var _this = this; this._onReadyStateChange = (function () { /* readyState values: 0 = uninitialized 1 = loading 2 = loaded 3 = interactive 4 = complete */ if (_this._xmlHttpRequest.readyState === 4 /*complete*/) { try { if (typeof(_this._xmlHttpRequest.status) === "undefined") { return; } } catch(ex) { return; } _this._clearTimer(); _this._responseAvailable = true; _this._webRequest.completed(Sys.EventArgs.Empty); if (_this._xmlHttpRequest) { _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod; _this._xmlHttpRequest = null; } } }); this._clearTimer = (function() { if (_this._timer) { window.clearTimeout(_this._timer); _this._timer = null; } }); this._onTimeout = (function() { if (!_this._responseAvailable) { _this._clearTimer(); _this._timedOut = true; var xhr = _this._xmlHttpRequest; xhr.onreadystatechange = Function.emptyMethod; xhr.abort(); _this._webRequest.completed(Sys.EventArgs.Empty); _this._xmlHttpRequest = null; } }); } $type.prototype = { get_timedOut: function XMLHttpExecutor$get_timedOut() { /// True if the executor has timed out. if (arguments.length !== 0) throw Error.parameterCount(); return !!this._timedOut; }, get_started: function XMLHttpExecutor$get_started() { /// True if the executor has started. if (arguments.length !== 0) throw Error.parameterCount(); return !!this._started; }, get_responseAvailable: function XMLHttpExecutor$get_responseAvailable() { /// True if a response is available. if (arguments.length !== 0) throw Error.parameterCount(); return !!this._responseAvailable; }, get_aborted: function XMLHttpExecutor$get_aborted() { /// True if the executor has been aborted. if (arguments.length !== 0) throw Error.parameterCount(); return !!this._aborted; }, executeRequest: function XMLHttpExecutor$executeRequest() { /// Invokes the request. if (arguments.length !== 0) throw Error.parameterCount(); var request = this.get_webRequest(); this._webRequest = request; if (this._started) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'executeRequest')); } if (!this._webRequest) { throw Error.invalidOperation(Sys.Res.nullWebRequest); } var body = request.get_body(); var headers = request.get_headers(); var xhr = new XMLHttpRequest(); this._xmlHttpRequest = xhr; xhr.onreadystatechange = this._onReadyStateChange; var verb = request.get_httpVerb(); xhr.open(verb, request.getResolvedUrl(), true /*async*/); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); if (headers) { for (var header in headers) { var val = headers[header]; if (typeof(val) !== "function") xhr.setRequestHeader(header, val); } } if (verb.toLowerCase() === "post") { if ((headers === null) || !headers['Content-Type']) { xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'); } if (!body) { body = ""; } } var timeout = request.get_timeout(); if (timeout > 0) { this._timer = window.setTimeout(Function.createDelegate(this, this._onTimeout), timeout); } xhr.send(body); this._started = true; }, getResponseHeader: function XMLHttpExecutor$getResponseHeader(header) { /// Returns a response header. /// The requested header. /// The value of the header. var e = Function._validateParams(arguments, [ {name: "header", type: String} ]); if (e) throw e; if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getResponseHeader')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getResponseHeader')); } var er, result; try { result = this._xmlHttpRequest.getResponseHeader(header); } catch (er) { } if (!result) result = ""; return result; }, getAllResponseHeaders: function XMLHttpExecutor$getAllResponseHeaders() { /// Returns all the responses header. /// The text of all the headers. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getAllResponseHeaders')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getAllResponseHeaders')); } return this._xmlHttpRequest.getAllResponseHeaders(); }, get_responseData: function XMLHttpExecutor$get_responseData() { /// The text of the response. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_responseData')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_responseData')); } return this._xmlHttpRequest.responseText; }, get_statusCode: function XMLHttpExecutor$get_statusCode() { /// The status code of the response. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusCode')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusCode')); } var ex, result = 0; try { result = this._xmlHttpRequest.status; } catch(ex) { } return result; }, get_statusText: function XMLHttpExecutor$get_statusText() { /// The status text of the repsonse. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusText')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusText')); } return this._xmlHttpRequest.statusText; }, get_xml: function XMLHttpExecutor$get_xml() { /// The response in xml format. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_xml')); } if (!this._xmlHttpRequest) { throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_xml')); } var xhr = this._xmlHttpRequest; var xml = xhr.responseXML; if (!xml || !xml.documentElement) { xml = Sys.Net.XMLDOM(xhr.responseText); if (!xml || !xml.documentElement) return null; } else if (navigator.userAgent.indexOf('MSIE') !== -1) { xml.setProperty('SelectionLanguage', 'XPath'); } if (xml.documentElement.namespaceURI === "http://www.mozilla.org/newlayout/xml/parsererror.xml" && xml.documentElement.tagName === "parsererror") { return null; } if (xml.documentElement.firstChild && xml.documentElement.firstChild.tagName === "parsererror") { return null; } return xml; }, abort: function XMLHttpExecutor$abort() { /// Aborts the request. if (arguments.length !== 0) throw Error.parameterCount(); if (!this._started) { throw Error.invalidOperation(Sys.Res.cannotAbortBeforeStart); } if (this._aborted || this._responseAvailable || this._timedOut) return; this._aborted = true; this._clearTimer(); var xhr = this._xmlHttpRequest; if (xhr && !this._responseAvailable) { xhr.onreadystatechange = Function.emptyMethod; xhr.abort(); this._xmlHttpRequest = null; this._webRequest.completed(Sys.EventArgs.Empty); } } } $type.registerClass('Sys.Net.XMLHttpExecutor', Sys.Net.WebRequestExecutor); $type = Sys.Net._WebRequestManager = function _WebRequestManager() { /// if (arguments.length !== 0) throw Error.parameterCount(); this._defaultExecutorType = "Sys.Net.XMLHttpExecutor"; } $type.prototype = { add_invokingRequest: function _WebRequestManager$add_invokingRequest(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.addEventHandler(this, "invokingRequest", handler); }, remove_invokingRequest: function _WebRequestManager$remove_invokingRequest(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.removeEventHandler(this, "invokingRequest", handler); }, add_completedRequest: function _WebRequestManager$add_completedRequest(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.addEventHandler(this, "completedRequest", handler); }, remove_completedRequest: function _WebRequestManager$remove_completedRequest(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.removeEventHandler(this, "completedRequest", handler); }, get_defaultTimeout: function _WebRequestManager$get_defaultTimeout() { /// The default timeout for requests in milliseconds. if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultTimeout || 0; }, set_defaultTimeout: function _WebRequestManager$set_defaultTimeout(value) { var e = Function._validateParams(arguments, [{name: "value", type: Number}]); if (e) throw e; if (value < 0) { throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout); } this._defaultTimeout = value; }, get_defaultExecutorType: function _WebRequestManager$get_defaultExecutorType() { /// The default executor type name. if (arguments.length !== 0) throw Error.parameterCount(); return this._defaultExecutorType; }, set_defaultExecutorType: function _WebRequestManager$set_defaultExecutorType(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; this._defaultExecutorType = value; }, executeRequest: function _WebRequestManager$executeRequest(webRequest) { /// Executes a request. /// The webRequest to execute. var e = Function._validateParams(arguments, [ {name: "webRequest", type: Sys.Net.WebRequest} ]); if (e) throw e; var executor = webRequest.get_executor(); if (!executor) { var er, failed; try { var executorType = window.eval(this._defaultExecutorType); executor = new executorType(); } catch (er) { failed = true; } if (failed || !Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) { throw Error.argument("defaultExecutorType", String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType)); } webRequest.set_executor(executor); } if (!executor.get_aborted()) { var evArgs = new Sys.Net.NetworkRequestEventArgs(webRequest); Sys.Observer.raiseEvent(this, "invokingRequest", evArgs); if (!evArgs.get_cancel()) { executor.executeRequest(); } } } } $type.registerClass('Sys.Net._WebRequestManager'); Sys.Net.WebRequestManager = new Sys.Net._WebRequestManager(); $type = Sys.Net.NetworkRequestEventArgs = function NetworkRequestEventArgs(webRequest) { /// This class is raised by the WebRequestManager when a WebRequest is about to be executed. /// The identifier for the event. var e = Function._validateParams(arguments, [ {name: "webRequest", type: Sys.Net.WebRequest} ]); if (e) throw e; Sys.Net.NetworkRequestEventArgs.initializeBase(this); this._webRequest = webRequest; } $type.prototype = { get_webRequest: function NetworkRequestEventArgs$get_webRequest() { /// The request about to be executed. if (arguments.length !== 0) throw Error.parameterCount(); return this._webRequest; } } $type.registerClass('Sys.Net.NetworkRequestEventArgs', Sys.CancelEventArgs); $type = Sys.Net.WebRequest = function WebRequest() { /// WebRequest class if (arguments.length !== 0) throw Error.parameterCount(); this._url = ""; this._headers = { }; this._body = null; this._userContext = null; this._httpVerb = null; } $type.prototype = { add_completed: function WebRequest$add_completed(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.addEventHandler(this, "completed", handler); }, remove_completed: function WebRequest$remove_completed(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; Sys.Observer.removeEventHandler(this, "completed", handler); }, completed: function WebRequest$completed(eventArgs) { /// The completed method should be called when the request is completed. /// The event args to raise the event with. var e = Function._validateParams(arguments, [ {name: "eventArgs", type: Sys.EventArgs} ]); if (e) throw e; function raise(source, sender, eventName) { var handler = Sys.Observer._getContext(source, true).events.getHandler(eventName); if (handler) { handler(sender, eventArgs); } } raise(Sys.Net.WebRequestManager, this._executor, "completedRequest"); raise(this, this._executor, "completed"); Sys.Observer.clearEventHandlers(this, "completed"); }, get_url: function WebRequest$get_url() { /// The url. if (arguments.length !== 0) throw Error.parameterCount(); return this._url; }, set_url: function WebRequest$set_url(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; this._url = value; }, get_headers: function WebRequest$get_headers() { /// The headers dictionary for the request. if (arguments.length !== 0) throw Error.parameterCount(); return this._headers; }, get_httpVerb: function WebRequest$get_httpVerb() { /// The httpVerb for the request. if (arguments.length !== 0) throw Error.parameterCount(); if (this._httpVerb === null) { if (this._body === null) { return "GET"; } return "POST"; } return this._httpVerb; }, set_httpVerb: function WebRequest$set_httpVerb(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; if (value.length === 0) { throw Error.argument('value', Sys.Res.invalidHttpVerb); } this._httpVerb = value; }, get_body: function WebRequest$get_body() { /// The body of the request. if (arguments.length !== 0) throw Error.parameterCount(); return this._body; }, set_body: function WebRequest$set_body(value) { var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]); if (e) throw e; this._body = value; }, get_userContext: function WebRequest$get_userContext() { /// The userContext of the request. if (arguments.length !== 0) throw Error.parameterCount(); return this._userContext; }, set_userContext: function WebRequest$set_userContext(value) { var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]); if (e) throw e; this._userContext = value; }, get_executor: function WebRequest$get_executor() { /// The executor for the request. if (arguments.length !== 0) throw Error.parameterCount(); return this._executor || null; }, set_executor: function WebRequest$set_executor(value) { var e = Function._validateParams(arguments, [{name: "value", type: Sys.Net.WebRequestExecutor}]); if (e) throw e; if (this._executor && this._executor.get_started()) { throw Error.invalidOperation(Sys.Res.setExecutorAfterActive); } this._executor = value; value._set_webRequest(this); }, get_timeout: function WebRequest$get_timeout() { /// The timeout in milliseconds for the request. if (arguments.length !== 0) throw Error.parameterCount(); return this._timeout || Sys.Net.WebRequestManager.get_defaultTimeout(); }, set_timeout: function WebRequest$set_timeout(value) { var e = Function._validateParams(arguments, [{name: "value", type: Number}]); if (e) throw e; if (value < 0) { throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout); } this._timeout = value; }, getResolvedUrl: function WebRequest$getResolvedUrl() { /// The getResolvedUrl method returns the url resolved against the base url of the page if set. /// The resolved url for the request. if (arguments.length !== 0) throw Error.parameterCount(); return Sys.Net.WebRequest._resolveUrl(this._url); }, invoke: function WebRequest$invoke() { /// Invokes the request if (arguments.length !== 0) throw Error.parameterCount(); if (this._invokeCalled) { throw Error.invalidOperation(Sys.Res.invokeCalledTwice); } Sys.Net.WebRequestManager.executeRequest(this); this._invokeCalled = true; } } $type._resolveUrl = function WebRequest$_resolveUrl(url, baseUrl) { if (url && url.indexOf('://') > 0) { return url; } if (!baseUrl || !baseUrl.length) { var baseElement = Sys.get('base'); if (baseElement && baseElement.href && baseElement.href.length) { baseUrl = baseElement.href; } else { baseUrl = document.URL; } } var qsStart = baseUrl.indexOf('?'); if (qsStart > 0) { baseUrl = baseUrl.substr(0, qsStart); } qsStart = baseUrl.indexOf('#'); if (qsStart > 0) { baseUrl = baseUrl.substr(0, qsStart); } baseUrl = baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1); if (!url || !url.length) { return baseUrl; } if (url.charAt(0) === '/') { var slashslash = baseUrl.indexOf('://'); if (slashslash === -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl1); } var nextSlash = baseUrl.indexOf('/', slashslash + 3); if (nextSlash === -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl2); } return baseUrl.substr(0, nextSlash) + url; } else { var lastSlash = baseUrl.lastIndexOf('/'); if (lastSlash === -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl3); } return baseUrl.substr(0, lastSlash+1) + url; } } $type._createQueryString = function WebRequest$_createQueryString(queryString, encodeMethod, addParams) { encodeMethod = encodeMethod || encodeURIComponent; var i = 0, obj, val, arg, sb = new Sys.StringBuilder(); if (queryString) { for (arg in queryString) { obj = queryString[arg]; if (typeof(obj) === "function") continue; val = Sys.Serialization.JavaScriptSerializer.serialize(obj); if (i++) { sb.append('&'); } sb.append(arg); sb.append('='); sb.append(encodeMethod(val)); } } if (addParams) { if (i) { sb.append('&'); } sb.append(addParams); } return sb.toString(); } $type._createUrl = function WebRequest$_createUrl(url, queryString, addParams) { if (!queryString && !addParams) { return url; } var qs = Sys.Net.WebRequest._createQueryString(queryString, null, addParams); return qs.length ? url + ((url && url.indexOf('?') >= 0) ? "&" : "?") + qs : url; } $type.registerClass('Sys.Net.WebRequest'); } if (window.Sys && Sys.loader) { Sys.loader.registerScript("Network", null, execute); } else { execute(); } })(); u// (c) 2010 CodePlex Foundation /// /// /// /// /// /// /// /// (function() { var scriptName = "ExtendedListSearch"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.ListSearchBehavior = function(element) { /// /// The ListSearchBehavior allows users to search incrementally within a Select /// /// /// Select associated with the behavior /// Sys.Extended.UI.ListSearchBehavior.initializeBase(this, [element]); this._promptCssClass = null; this._promptText = (Sys.Extended.UI.Resources && Sys.Extended.UI.Resources.ListSearch_DefaultPrompt) || "Type to search"; this._offsetX = 0; this._offsetY = 0; this._promptPosition = Sys.Extended.UI.ListSearchPromptPosition.Top; this._raiseImmediateOnChange = false; this._queryPattern = Sys.Extended.UI.ListSearchQueryPattern.StartsWith; this._isSorted = false; this._popupBehavior = null; this._onShowJson = null; this._onHideJson = null; this._originalIndex = 0; // Index of the selected option when a key is first hit (before it is changed by the browser) this._newIndex = -1; // New index to which we want to move. We need this because Firefox shifts the selected option even though we preventDefault and preventPropagation in _onKeyPress. this._showingPromptText = false; this._searchText = ''; // Actual search text (text displayed in the PromptDiv may be clipped) this._ellipsis = String.fromCharCode(0x2026); this._binarySearch = false; this._applicationLoadDelegate = null; this._focusIndex = 0; // Selected Index when the list is initially given focus this._queryTimeout = 0; // Timeout in milliseconds after which search text will be cleared this._timer = null; // Holds the opaque ID returned by setTimeout function. Needed to correctly clear the timeout reference. this._matchFound = false; // Set to true means an item was selected after searching. False means no item match search criteria this._focusHandler = null; this._blurHandler = null; this._keyDownHandler = null; this._keyUpHandler = null; this._keyPressHandler = null; } Sys.Extended.UI.ListSearchBehavior.prototype = { initialize : function() { /// /// Initialize the behavior /// Sys.Extended.UI.ListSearchBehavior.callBaseMethod(this, 'initialize'); var element = this.get_element(); if(element && element.tagName === 'SELECT') { this._focusHandler = Function.createDelegate(this, this._onFocus); this._blurHandler = Function.createDelegate(this, this._onBlur); this._keyDownHandler = Function.createDelegate(this, this._onKeyDown); this._keyUpHandler = Function.createDelegate(this, this._onKeyUp); this._keyPressHandler = Function.createDelegate(this, this._onKeyPress); $addHandler(element, "focus", this._focusHandler); $addHandler(element, "blur", this._blurHandler); $addHandler(element, "keydown", this._keyDownHandler); $addHandler(element, "keyup", this._keyUpHandler); $addHandler(element, "keypress", this._keyPressHandler); this._applicationLoadDelegate = Function.createDelegate(this, this._onApplicationLoad); Sys.Application.add_load(this._applicationLoadDelegate); } }, dispose : function() { /// /// Dispose the behavior /// var element = this.get_element(); $removeHandler(element, "keypress", this._keyPressHandler); $removeHandler(element, "keyup", this._keyUpHandler); $removeHandler(element, "keydown", this._keyDownHandler); $removeHandler(element, "blur", this._blurHandler); $removeHandler(element, "focus", this._focusHandler); this._onShowJson = null; this._onHideJson = null; this._disposePopupBehavior(); if(this._applicationLoadDelegate) { Sys.Application.remove_load(this._applicationLoadDelegate); this._applicationLoadDelegate = null; } if(this._timer) { this._stopTimer(); } Sys.Extended.UI.ListSearchBehavior.callBaseMethod(this, 'dispose'); }, _onApplicationLoad : function(sender, applicationLoadEventArgs) { /// /// Handler called automatically when a all scripts are loaded and controls are initialized /// Called after all scripts have been loaded and controls initialized. If the current Select is the one that has /// focus then it shows the prompt text. We cannot do this in the initialize method because the second pass initialization /// of the popup behavior hides it. /// /// /// Sender /// /// /// Event arguments /// var hasInitialFocus = false; var clientState = Sys.Extended.UI.ListSearchBehavior.callBaseMethod(this, 'get_ClientState'); if (clientState != null && clientState != "") { hasInitialFocus = (clientState === "Focused"); Sys.Extended.UI.ListSearchBehavior.callBaseMethod(this, 'set_ClientState', null); } if(hasInitialFocus) { this._handleFocus(); } }, _checkIfSorted : function(options) { /// /// Checks to see if the list is sorted to see if we can do the fast binary search or the slower linear search /// /// /// Collections of options in a SELECT /// if (this._isSorted) { return true; } else { var previousOptionValue = null; var optionsLength = options.length; for(var index = 0; index < optionsLength; index++) { var optionValue = options[index].text.toLowerCase(); if(previousOptionValue && this._compareStrings(optionValue, previousOptionValue) < 0) { return false; } previousOptionValue = optionValue; } return true; } }, _onFocus : function(e) { /// /// Handler for the Select's focus event /// /// /// Event info /// this._handleFocus(); }, _handleFocus : function() { /// /// Utility method called when the form is loaded if the Select has the default focus, or when it is explicitly focused /// var element = this.get_element(); this._focusIndex = element.selectedIndex; if(!this._promptDiv) { this._promptDiv = document.createElement('div'); this._promptDiv.id = element.id + '_promptDiv'; this._promptDiv.innerHTML = this._promptText && this._promptText.length > 0 ? this._promptText : Sys.Extended.UI.Resources.ListSearch_DefaultPrompt; this._showingPromptText = true; if(this._promptCssClass) { this._promptDiv.className = this._promptCssClass; } element.parentNode.insertBefore(this._promptDiv, element.nextSibling); this._promptDiv.style.overflow = 'hidden'; this._promptDiv.style.height = this._promptDiv.offsetHeight + 'px'; this._promptDiv.style.width = element.offsetWidth + 'px'; } if(!this._popupBehavior) { this._popupBehavior = $create(Sys.Extended.UI.PopupBehavior, { parentElement : element }, {}, {}, this._promptDiv); } if (this._promptPosition && this._promptPosition == Sys.Extended.UI.ListSearchPromptPosition.Bottom) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomLeft); } else { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopLeft); } if (this._onShowJson) { this._popupBehavior.set_onShow(this._onShowJson); } if (this._onHideJson) { this._popupBehavior.set_onHide(this._onHideJson); } this._popupBehavior.show(); this._updatePromptDiv(this._promptText); }, _onBlur : function() { /// /// Handle the Select's blur event /// this._disposePopupBehavior(); var promptDiv = this._promptDiv; var element = this.get_element(); if(promptDiv) { this._promptDiv = null; promptDiv.parentNode.removeChild(promptDiv); } if(!this._raiseImmediateOnChange && this._focusIndex != element.selectedIndex) { this._raiseOnChange(element); } }, _disposePopupBehavior : function() { /// /// Utilty function to dispose of the popup behavior, called when the Select loses focus or when the extender is being disposed /// if (this._popupBehavior) { this._popupBehavior.dispose(); this._popupBehavior = null; } }, _onKeyDown : function(e) { /// /// Handler for the Select's KeyDown event /// /// /// Event info /// var element = this.get_element(); var promptDiv = this._promptDiv; if(!element || !promptDiv) { return; } this._originalIndex = element.selectedIndex; if(this._showingPromptText) { promptDiv.innerHTML = ''; this._searchText = ''; this._showingPromptText = false; this._binarySearch = this._checkIfSorted(element.options); // Delayed until required } if(e.keyCode == Sys.UI.Key.backspace) { e.preventDefault(); e.stopPropagation(); this._removeCharacterFromPromptDiv(); this._searchForTypedText(element); if(!this._searchText || this._searchText.length == 0) { this._stopTimer(); } } else if(e.keyCode == Sys.UI.Key.esc) { e.preventDefault(); e.stopPropagation(); promptDiv.innerHTML = ''; this._searchText = ''; this._searchForTypedText(element); this._stopTimer(); } else if(e.keyCode == Sys.UI.Key.enter && !this._raiseImmediateOnChange && this._focusIndex != element.selectedIndex) { this._focusIndex = element.selectedIndex; // So that OnChange is not fired again when the list loses focus this._raiseOnChange(element); } }, _onKeyUp : function(e) { /// /// Handler for the Select's KeyUp event. We need this because Firefox shifts the selected option even though /// we preventDefault and preventPropagation in _onKeyPress /// /// /// Event info /// var element = this.get_element(); var promptDiv = this._promptDiv; if(!element || !promptDiv) { return; } if(this._newIndex == -1 || !element || !promptDiv || promptDiv.innerHTML == '') { this._newIndex = -1; return; } element.selectedIndex = this._newIndex; this._newIndex = -1; }, _onKeyPress : function(e) { /// /// Handler for the Select's KeyPress event. /// /// /// Event info /// var element = this.get_element(); var promptDiv = this._promptDiv; if(!element || !promptDiv) { return; } if(!this._isNormalChar(e)) { if(e.charCode == Sys.UI.Key.backspace) { e.preventDefault(); e.stopPropagation(); if(this._searchText && this._searchText.length == 0) { this._stopTimer(); } } return; } e.preventDefault(); e.stopPropagation(); this._addCharacterToPromptDiv(e.charCode); this._searchForTypedText(element); this._stopTimer(); if(this._searchText && this._searchText.length != 0) { this._startTimer(); } }, _isNormalChar : function(e) { /// /// Returns true if the specified charCode is a key rather than a normal (displayable) character /// /// /// Event info /// /// if (Sys.Browser.agent == Sys.Browser.Firefox && e.rawEvent.keyCode) { return false; } if (Sys.Browser.agent == Sys.Browser.Opera && e.rawEvent.which == 0) { return false; } if (e.charCode && (e.charCode < Sys.UI.Key.space || e.charCode > 6000)) { return false; } return true; }, _updatePromptDiv : function(newText) { /// /// Updates the text in the promptDiv. /// /// /// The new text to be displayed in the promptDiv. Optional. If not specified then uses the _searchText member. /// /// var promptDiv = this._promptDiv; if(!promptDiv || !this.get_element()) { return; } var text = typeof(newText) === 'undefined' ? this._searchText : newText; var textNode = promptDiv.firstChild; if(!textNode) { textNode = document.createTextNode(text); promptDiv.appendChild(textNode); } else { textNode.nodeValue = text; } if(promptDiv.scrollWidth <= promptDiv.offsetWidth && promptDiv.scrollHeight <= promptDiv.offsetHeight) { return; // Already fit } for(var maxFit = text.length - 1; maxFit > 0 && (promptDiv.scrollWidth > promptDiv.offsetWidth || promptDiv.scrollHeight > promptDiv.offsetHeight); maxFit--) { textNode.nodeValue = this._ellipsis + text.substring(text.length - maxFit, text.length); } }, _addCharacterToPromptDiv : function (charCode) { /// /// Adds the specified character to the promptDiv. /// /// /// The charCode of the character to be added /// this._searchText += String.fromCharCode(charCode); this._updatePromptDiv(); }, _removeCharacterFromPromptDiv : function () { /// /// Removes a character from the end of the promptDiv. /// if(this._searchText && this._searchText != '') { this._searchText = this._searchText.substring(0, this._searchText.length - 1); this._updatePromptDiv(); } }, _searchForTypedText : function(element) { /// /// Searches for the text typed so far in the Select /// /// /// Select associated with the behavior /// var searchText = this._searchText; var options = element.options; var text = searchText ? searchText.toLowerCase() : ""; this._matchFound = false; if(text.length == 0) { // Probably hit delete -- select the first option if(options.length > 0) { element.selectedIndex = 0; this._newIndex = 0; } } else { var selectedIndex = -1; if(this._binarySearch && (this._queryPattern == Sys.Extended.UI.ListSearchQueryPattern.StartsWith)) { selectedIndex = this._doBinarySearch(options, text, 0, options.length - 1); } else { selectedIndex = this._doLinearSearch(options, text, 0, options.length - 1); } if(selectedIndex == -1) { this._newIndex = this._originalIndex; } else { // Otherwise move to the new option element.selectedIndex = selectedIndex; this._newIndex = selectedIndex; this._matchFound = true; } } if(this._raiseImmediateOnChange && this._originalIndex != element.selectedIndex) { this._raiseOnChange(element); } }, _raiseOnChange : function(element) { /// /// Fires a OnChange event /// /// /// Select associated with the behavior /// if (document.createEvent) { var onchangeEvent = document.createEvent('HTMLEvents'); onchangeEvent.initEvent('change', true, false); element.dispatchEvent(onchangeEvent); } else if( document.createEventObject ) { element.fireEvent('onchange'); } }, _compareStrings : function(strA, strB) { /// /// Compare two strings /// /// /// The first string /// /// /// The second string /// /// /// 0 if equal, -1 if strA < strB, 1 otherwise /// return ((strA == strB) ? 0 : ((strA < strB) ? -1 : 1)) }, _doBinarySearch : function(options, value, left, right) { /// /// Does a binary search for a value in the Select's options /// /// /// The collection of options in the Select /// /// /// The value being searched for /// /// /// The left bounds of the search /// /// /// The right bounds of the search /// while (left <= right) { var mid = Math.floor((left+right)/2); var option = options[mid].text.toLowerCase().substring(0, value.length); var compareResult = this._compareStrings(value, option); if (compareResult > 0) { left = mid+1 } else if(compareResult < 0) { right = mid-1; } else { while(mid > 0 && options[mid - 1].text.toLowerCase().startsWith(value)) { mid--; } return mid; } } return -1; }, _doLinearSearch : function(options, value, left, right) { /// /// Does a linear search for a value in the Select's options /// /// /// The collection of options in the Select /// /// /// The value being searched for /// /// /// The left bounds of the search /// /// /// The right bounds of the search /// if (this._queryPattern == Sys.Extended.UI.ListSearchQueryPattern.Contains) { for(var i = left; i <= right; i++) { if(options[i].text.toLowerCase().indexOf(value) >= 0) { return i; } } } else if (this._queryPattern == Sys.Extended.UI.ListSearchQueryPattern.StartsWith) { for(var i = left; i <= right; i++) { if(options[i].text.toLowerCase().startsWith(value)) { return i; } } } return -1; }, _onTimerTick : function() { /// /// On timer tick since user is not responsive, so reset search text if no match is found. /// this._stopTimer(); if (!this._matchFound) { this._searchText = ''; this._updatePromptDiv(); } }, _startTimer : function() { /// /// Starts timer to monitor user interaction only if greater than zero. /// if (this._queryTimeout > 0) { this._timer = window.setTimeout(Function.createDelegate(this, this._onTimerTick), this._queryTimeout); } }, _stopTimer : function() { /// /// Stops and clears previously created timer. /// if(this._timer != null) { window.clearTimeout(this._timer); } this._timer = null; }, get_onShow : function() { /// /// Generic OnShow Animation's JSON definition /// return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson; }, set_onShow : function(value) { if (this._popupBehavior) { this._popupBehavior.set_onShow(value) } else { this._onShowJson = value; } this.raisePropertyChanged('onShow'); }, get_onShowBehavior : function() { /// /// Generic OnShow Animation's behavior /// return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null; }, onShow : function() { /// /// Play the OnShow animation /// /// if (this._popupBehavior) { this._popupBehavior.onShow(); } }, get_onHide : function() { /// /// Generic OnHide Animation's JSON definition /// return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson; }, set_onHide : function(value) { if (this._popupBehavior) { this._popupBehavior.set_onHide(value) } else { this._onHideJson = value; } this.raisePropertyChanged('onHide'); }, get_onHideBehavior : function() { /// /// Generic OnHide Animation's behavior /// return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null; }, onHide : function() { /// /// Play the OnHide animation /// /// if (this._popupBehavior) { this._popupBehavior.onHide(); } }, get_promptText : function() { /// /// The prompt text displayed when user clicks the list /// /// return this._promptText; }, set_promptText : function(value) { if (this._promptText != value) { this._promptText = value; this.raisePropertyChanged('promptText'); } }, get_promptCssClass : function() { /// /// CSS class applied to prompt when user clicks list. /// /// return this._promptCssClass; }, set_promptCssClass : function(value) { if (this._promptCssClass != value) { this._promptCssClass = value; this.raisePropertyChanged('promptCssClass'); } }, get_promptPosition : function() { /// /// Where the prompt should be positioned relative to the target control. /// Can be Top (default) or Bottom /// return this._promptPosition; }, set_promptPosition : function(value) { if (this._promptPosition != value) { this._promptPosition = value; this.raisePropertyChanged('promptPosition'); } }, get_raiseImmediateOnChange : function() { /// /// Boolean indicating whether an OnChange event should be fired as soon as the selected element /// is changed, or only when the list loses focus or the user hits enter. /// /// return this._raiseImmediateOnChange; }, set_raiseImmediateOnChange : function(value) { if (this._raiseImmediateOnChange != value) { this._raiseImmediateOnChange = value; this.raisePropertyChanged('raiseImmediateOnChange'); } }, get_queryTimeout : function() { /// /// Value indicating timeout in milliseconds after which search query will be cleared. /// Zero means no auto reset at all. /// /// return this._queryTimeout; }, set_queryTimeout : function(value) { if (this._queryTimeout != value) { this._queryTimeout = value; this.raisePropertyChanged('queryTimeout'); } }, get_isSorted : function() { /// /// When setting this to true, we instruct search routines that /// all values in List are already sorted on population, /// so binary search can be used if on StartsWith criteria is set. /// return this._isSorted; }, set_isSorted : function(value) { if (this._isSorted != value) { this._isSorted = value; this.raisePropertyChanged('isSorted'); } }, get_queryPattern : function() { /// /// Search query pattern to be used to find items. /// Can be StartsWith (default) or Contains /// return this._queryPattern; }, set_queryPattern : function(value) { if (this._queryPattern != value) { this._queryPattern = value; this.raisePropertyChanged('queryPattern'); } } } Sys.Extended.UI.ListSearchBehavior.registerClass('Sys.Extended.UI.ListSearchBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.ListSearchBehavior, { name: "listSearch" }); Sys.Extended.UI.ListSearchPromptPosition = function() { throw Error.invalidOperation(); } Sys.Extended.UI.ListSearchPromptPosition.prototype = { Top: 0, Bottom: 1 } Sys.Extended.UI.ListSearchPromptPosition.registerEnum('Sys.Extended.UI.ListSearchPromptPosition'); Sys.Extended.UI.ListSearchQueryPattern = function() { /// /// Choose what query pattern to use to search for matching words. /// /// /// throw Error.invalidOperation(); } Sys.Extended.UI.ListSearchQueryPattern.prototype = { StartsWith: 0, Contains: 1 } Sys.Extended.UI.ListSearchQueryPattern.registerEnum('Sys.Extended.UI.ListSearchQueryPattern'); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedPopupBehavior"], execute); } else { execute(); } })(); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph.prototype = { checkState : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph.callBaseMethod(this, "checkState")) return false; return this._designPanel._textAlignState(""); }, callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph.callBaseMethod(this, "callMethod")) return false; this._designPanel._execCommand("Paragraph"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.Paragraph", Sys.Extended.UI.HTMLEditor.ToolbarButton.EditorToggleButton); xType.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.prototype={callMethod:function(){if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.callBaseMethod(this,"callMethod"))return false;this._designPanel._execCommand("InsertOrderedList")}};Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList",Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.prototype = { callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.callBaseMethod(this, "callMethod")) return false; this._designPanel._execCommand("InsertOrderedList"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.OrderedList", Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull.prototype = { checkState : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull.callBaseMethod(this, "checkState")) return false; return this._designPanel._textAlignState("justify"); }, callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull.callBaseMethod(this, "callMethod")) return false; this._designPanel._execCommand("JustifyFull"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyFull", Sys.Extended.UI.HTMLEditor.ToolbarButton.EditorToggleButton); fType.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink.initializeBase(this,[a]);this._emptySrc=window.location.href.replace(/(http[s]*\:\/\/)[^\u0000]*/i,"$1")};Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink.prototype={callMethod:function(){var b=this,c=b._designPanel,d=c._getSelection(),e=c._createRange(d),a=Sys.Extended.UI.HTMLEditor.getSelParent(c);if(a.nodeType==3)a=a.parentNode;while(a&&Sys.Extended.UI.HTMLEditor.isStyleTag(a.tagName)&&a.tagName.toUpperCase()!="A")a=a.parentNode;if(a&&a.tagName.toUpperCase()=="A"){b._edit=true;b._editLink(a)}else{b._edit=false;if(!b._createLink())return false}return!Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink.callBaseMethod(b,"callMethod")?false:true},opened:function(a){this._preparePopup(a)},ok:function(e){var b=null,d="target",a=this,c=e.popupMediator.getField(d);if(c!=b)a._obj.target=c.value;var f=e.popupMediator.getField("url");if(f!=b)a._obj.href=f.value;if(/^javascript:/.test(a._obj.href)){a._obj.target=b;try{a._obj.removeAttribute(d)}catch(g){}}else{var c=e.popupMediator.getField(d);if(c!=b)a._obj.target=c.value}if(a._edit)a._edit_callback(true);else a._create_callback(true)},cancel:function(){if(this._edit)this._edit_callback(false);else this._create_callback(false)},_createLink:function(){var g=false,k="span",b=this,a=b._designPanel,l=!Sys.Extended.UI.HTMLEditor.isIE?Sys.Extended.UI.HTMLEditor.Trim(a.getSelectedHTML()):"",h=a._getSelection(),c=a._createRange(h);b._txt=null;if(!(a.isControl()&&Sys.Extended.UI.HTMLEditor.getSelParent(a).tagName&&(Sys.Extended.UI.HTMLEditor.getSelParent(a).tagName.toUpperCase()=="EMBED"||Sys.Extended.UI.HTMLEditor.getSelParent(a).tagName.toUpperCase()=="IMG"))&&!(!a.isControl()&&(Sys.Extended.UI.HTMLEditor.isIE&&c.text.length>0||!Sys.Extended.UI.HTMLEditor.isIE&&l.length>0))){a._saveContent();var j=a._doc.createElement(k);j.innerHTML="new link";j.id=Sys.Extended.UI.HTMLEditor.smartClassName;var n=true;if(Sys.Extended.UI.HTMLEditor.isIE&&a.isControl()){var d=c.item(0),o=a._doc.createElement(k);d.parentNode.insertBefore(o,d);b._txt=j.firstChild;d.parentNode.insertBefore(b._txt,d);var p=a._doc.createElement(k);d.parentNode.insertBefore(p,d);d.parentNode.removeChild(d);a.setSelectionAfterOperation([o,p],g);n=g}else{a.insertHTML(Sys.Extended.UI.HTMLEditor.getHTML(j,true));var f=a._doc.getElementById(Sys.Extended.UI.HTMLEditor.smartClassName);b._txt=f.firstChild;f.parentNode.insertBefore(f.firstChild,f);f.parentNode.removeChild(f)}if(!Sys.Extended.UI.HTMLEditor.isIE){c=a._createRange();c.setStart(b._txt,0);c.setEnd(b._txt,(""+b._txt.data+"").length);a._removeAllRanges(h);a._selectRange(h,c)}else n&&c.select();l=!Sys.Extended.UI.HTMLEditor.isIE?Sys.Extended.UI.HTMLEditor.Trim(a.getSelectedHTML()):"";h=a._getSelection();c=a._createRange(h)}if(a.isControl()&&Sys.Extended.UI.HTMLEditor.getSelParent(a).tagName.toUpperCase()=="IMG"||!a.isControl()&&(Sys.Extended.UI.HTMLEditor.isIE&&c.text.length>0||!Sys.Extended.UI.HTMLEditor.isIE&&l.length>0)){a._saveContent();b._obj={target:"default",href:b._emptySrc,title:""};for(var m=a._doc.getElementsByTagName("A"),i=[],e=0;e0&&a._obj.target=="default")a._obj.target=a.get_relatedPopup().get_defaultTarget();var d=c.popupMediator.getField("target");if(d!=null)d.value=a._obj.target&&a._obj.target.length>0&&a._obj.target.substr(0,1)=="_"?a._obj.target.toLowerCase():"_self";var b=c.popupMediator.getField("url");if(b!=null){if(a._edit)b.value=Sys.Extended.UI.HTMLEditor.getRealAttribute(a._obj,"href");else b.value=a._obj.href;if(b.value.length==0)b.value=a._emptySrc;b.value=b.value.replace(/\"/g,'"');setTimeout(function(){Sys.Extended.UI.HTMLEditor.setSelectionRange(b,0,b.value.length)},0)}},_edit_callback:function(c){var a=this,b=a._designPanel;try{if(!c)b._undo(false);else{if(a._obj.title.length==0){a._obj.title=null;a._obj.removeAttribute("title")}b.onContentChanged()}}catch(d){}return true},okCheck:function(b){var c=b.popupMediator.getField("url");if(c!=null){var a=c.value;if(a==""||a.length>=3&&a.substr(a.length-3,3)=="://"){b.alert(this.get_message("EmptyURL"));b.setTimeout(function(){try{c.focus()}catch(a){}},0);return false}return true}return false},_create_callback:function(k){var a=this,b=a._designPanel;try{if(k){for(var e=b._doc.getElementsByTagName("A"),i=0,g=0;g0)f.title=a._obj.title}if(a._txt)a._txt.data=a._obj.href;if(e.length>0){var d=e[i],c=b._doc.createElement("span");c.innerHTML=" ";if(d.nextSibling!=null)d.parentNode.insertBefore(c,d.nextSibling);else d.parentNode.appendChild(c);setTimeout(function(){Sys.Extended.UI.HTMLEditor._setCursor(c,b);setTimeout(function(){d.parentNode.removeChild(c)},0)},0)}setTimeout(function(){b._editPanel.updateToolbar();b.onContentChanged()},0)}else{b._undo(false);b.__stack.pop();if(a._txt){b._undo(false);b.__stack.pop()}}b.focusEditor()}catch(l){}return true}};Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.InsertLink",Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.HtmlMode = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.HtmlMode.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.HtmlMode.prototype = { } Sys.Extended.UI.HTMLEditor.ToolbarButton.HtmlMode.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.HtmlMode", Sys.Extended.UI.HTMLEditor.ToolbarButton.ModeButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.initializeBase(this, [element]); this._relatedPopup = null; this._autoClose = true; this._forclose_onmousedown$delegate = null; } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.prototype = { set_activeEditPanel: function(value) { if (this._editPanel != value && this._editPanel != null) { this.closePopup(); } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.callBaseMethod(this, "set_activeEditPanel", [value]); }, get_autoClose: function() { return this._autoClose; }, set_autoClose: function(value) { this._autoClose = value; }, get_relatedPopup: function() { return this._relatedPopup; }, set_relatedPopup: function(value) { this._relatedPopup = value; }, openPopup: function(callback, top, left) { if (this._autoClose && this._forclose_onmousedown$delegate != null) return; if (this._relatedPopup != null) { this._bookmark = null; if (Sys.Extended.UI.HTMLEditor.isIE) { var sel = this._designPanel._getSelection(); this._selType = sel.type.toLowerCase(); var range = this._designPanel._createRange(sel); if (this._selType == "text" || this._selType == "none") { try { this._bookmark = range.duplicate(); } catch (ex) { } } else if (this._selType == "control") { this._bookmark = range.item(0); range.remove(0); sel.empty(); } } if (typeof this._relatedPopup.set_relatedElement == "function") { this._relatedPopup.set_relatedElement(this.get_element()); this._forclose_onmousedown$delegate = Function.createDelegate(this, this._forclose_onmousedown); if (this._autoClose) { var designWindow = this._designPanel.get_element().contentWindow; var designBody = designWindow.document.body; var button = this; setTimeout(function() { if (button._forclose_onmousedown$delegate != null) { Sys.Extended.UI.HTMLEditor._addEvent(designBody, "mousedown", button._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._addEvent(designBody, "keydown", button._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._addEvent(document.body, "keydown", button._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._addEvent(window, "keydown", button._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._addEvent(designWindow, "mousedown", button._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._addEvent(document.body, "mousedown", button._forclose_onmousedown$delegate); if (document.documentElement) { Sys.Extended.UI.HTMLEditor._addEvent(document.documentElement, "mousedown", button._forclose_onmousedown$delegate); } } }, 0); } this._relatedPopup.open(callback); } else { this._relatedPopup.open(callback, top, left); } } }, _forclose_onmousedown: function(e) { if (this._forclose_onmousedown$delegate == null) return true; if (this._relatedPopup.isOpened) { this._relatedPopup.close(); } else { return true; } if (this._editPanel == Sys.Extended.UI.HTMLEditor.LastFocusedEditPanel) { try { // for the case if currently the Design panel is invisible if (this._bookmark) { if (Sys.Extended.UI.HTMLEditor.isIE) { var range; if (this._selType == "control") { range = this._designPanel._doc.body.createControlRange(); range.add(this._bookmark); } else { range = this._bookmark; } range.select(); } this._bookmark = null; } if (!Sys.Extended.UI.HTMLEditor.isIE) { var sel = this._designPanel._getSelection(); var range = this._designPanel._createRange(sel); this._designPanel._removeAllRanges(sel); this._designPanel._selectRange(sel, range); this._designPanel.focusEditor(); } } catch (ex) { } } var button = this; setTimeout(function() { if (button._editPanel == Sys.Extended.UI.HTMLEditor.LastFocusedEditPanel) { try { button._editPanel.updateToolbar(); } catch (ex) { } } }, 0); if (this._autoClose) { try { var designWindow = this._designPanel.get_element().contentWindow; var designBody = designWindow.document.body; if (document.documentElement) { Sys.Extended.UI.HTMLEditor._removeEvent(document.documentElement, "mousedown", this._forclose_onmousedown$delegate); } Sys.Extended.UI.HTMLEditor._removeEvent(designBody, "keydown", this._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._removeEvent(document.body, "keydown", this._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._removeEvent(window, "keydown", this._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._removeEvent(designBody, "mousedown", this._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._removeEvent(designWindow, "mousedown", this._forclose_onmousedown$delegate); Sys.Extended.UI.HTMLEditor._removeEvent(document.body, "mousedown", this._forclose_onmousedown$delegate); } catch (ex) { } } this._forclose_onmousedown$delegate = null; if (e && e.type) { if (e.type == "keydown") { Sys.Extended.UI.HTMLEditor._stopEvent(e); return false; } } return true; }, closePopup: function() { if (this._forclose_onmousedown$delegate != null) { this._forclose_onmousedown$delegate(null); } }, dispose: function() { if (this._forclose_onmousedown$delegate != null) { this._forclose_onmousedown$delegate(null); } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.callBaseMethod(this, "dispose"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton", Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy.prototype = { canBeShown : function() { return Sys.Extended.UI.HTMLEditor.isIE; }, callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy.callBaseMethod(this, "callMethod")) return false; var editor = this._designPanel; if(Sys.Extended.UI.HTMLEditor.isIE) { editor.openWait(); setTimeout(function(){editor.isShadowed(); editor._copyCut('c',true); editor.closeWait(); editor._ifShadow();},0) } else { editor._copyCut('c',true); } } } Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.Copy", Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton.prototype = { callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton.callBaseMethod(this, "callMethod")) return false; this.openPopup(Function.createDelegate(this, this._onopened)); return true; }, _onopened : function(contentWindow) { contentWindow.setColor = Function.createDelegate(this, this.setColor); }, setColor : function(color) { this.closePopup(); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorButton", Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.Popups");Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup=function(a){Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup.prototype={initialize:function(){Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup.callBaseMethod(this,"initialize")},dispose:function(){Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup.callBaseMethod(this,"dispose")}};Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup.registerClass("Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup",Sys.Extended.UI.HTMLEditor.Popups.AttachedTemplatePopup);rType.registerNamespace("Sys.Extended.UI.HTMLEditor.Popups");Sys.Extended.UI.HTMLEditor.Popups.LinkProperties=function(b){var a=this;Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.initializeBase(a,[b]);a._defaultTarget="_self";a._targetTextHolder=null;a._urlTextHolder=null};Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.prototype={get_defaultTarget:function(){return this._defaultTarget},set_defaultTarget:function(a){this._defaultTarget=a}};Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.registerClass("Sys.Extended.UI.HTMLEditor.Popups.LinkProperties",Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup);// (c) 2010 CodePlex Foundation (function(){function a(){Type._registerScript("Date.HijriCalendar.js",["MicrosoftAjaxGlobalization.js"]);__cultureInfo.dateTimeFormat.Calendar.convert={ticks1970:6.21355968e13,monthDays:[0,30,59,89,118,148,177,207,236,266,295,325,355],minDate:-4.25216736e13,maxDate:0xe677d21fdbff,adjustment:__cultureInfo.dateTimeFormat.Calendar._adjustment||0,toGregorian:function(e,d,f){var a=this,c=a.daysToYear(e)+a.monthDays[d]+f-1-a.adjustment,b=new Date(c*8.64e7-a.ticks1970);b.setMinutes(b.getMinutes()+b.getTimezoneOffset());return b},fromGregorian:function(f){var a=this;if(fa.maxDate)return null;var j=a.ticks1970+(f-0)-f.getTimezoneOffset()*6e4,e=Math.floor(j/8.64e7)+1+a.adjustment,i,c,d=Math.floor((e-227013)*30/10631)+1,b=a.daysToYear(d),g=a.isLeapYear(d)?355:354;if(eb+g){b+=g;d++}c=0;var h=e-b;while(c<=11&&h>a.monthDays[c])c++;c--;i=h-a.monthDays[c];return[d,c,i]},daysToYear:function(d){var b=Math.floor((d-1)/30)*30,a=d-b-1,c=Math.floor(b*10631/30)+227013;while(a>0){c+=this.isLeapYear(a)?355:354;a--}return c},isLeapYear:function(a){return(a*11+14)%30<11}}}if(window.Sys&&Sys.loader)Sys.loader.registerScript("HijriCalendar",null,a);else a()})();ܰ// (c) 2010 CodePlex Foundation /// /// /// /// /// /// /// (function() { var scriptName = "ExtendedAccordion"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.AutoSize = function() { /// /// The AutoSize enumeration is used to specify how the AccordionBehavior limits /// the growth of the accordion when panes are expanded and collapsed. It must /// correspond to the AutoSize CLR enumeration in AutoSize.cs. /// /// /// Allow the accordion to expand/collapse without restriction. /// /// /// Keep the accordion the same size as its specified size. If any /// panes are larger or smaller than the available space, grow or shrink /// them to the available space. /// /// /// Prevent the accordion from growing any larger than its specified size. /// If the content of a pane is too large to fit, grow it to fill the /// remaining space. /// throw Error.invalidOperation(); } Sys.Extended.UI.AutoSize.prototype = { None : 0, Fill : 1, Limit : 2 } Sys.Extended.UI.AutoSize.registerEnum("Sys.Extended.UI.AutoSize", false); Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs = function(oldIndex, selectedIndex) { /// /// Event arguments used to provide notification when an accordion's selected /// index is changed. The same event argument type is used for both the /// selectedIndexChanging event and the selectedIndexChanged events. If you set /// the cancel property to true during the selectedIndexChanging event, the /// accordion will not change panes. The cancel property has no effect during /// the selectedIndexChanged event. /// /// /// Last selected index /// /// /// New selected index /// Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.initializeBase(this); this._oldIndex = oldIndex; this._selectedIndex = selectedIndex; } Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.prototype = { get_oldIndex : function() { /// /// Last selected index /// return this._oldIndex; }, set_oldIndex : function(value) { this._oldIndex = value; }, get_selectedIndex : function() { /// /// New selected index /// return this._selectedIndex; }, set_selectedIndex : function(value) { this._selectedIndex = value; } } Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs.registerClass('Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs', Sys.CancelEventArgs); Sys.Extended.UI.AccordionBehavior = function(element) { /// /// The AccordionBehavior is used to turn properly structured XHTML into an /// Accordion with panes that can expand one at a time. /// /// /// The DOM element the behavior is associated with. It should contain an /// even number of child divs (such that ith pane has a header at div 2i and /// has content at div 2i+1). /// Sys.Extended.UI.AccordionBehavior.initializeBase(this, [element]); this._selectedIndex = 0; this._panes = []; this._fadeTransitions = false; this._duration = 0.25; this._framesPerSecond = 30; this._autoSize = Sys.Extended.UI.AutoSize.None; this._requireOpenedPane = true; this._suppressHeaderPostbacks = false; this._headersSize = 0; this._headerClickHandler = null; this._headerCssClass = ''; this._headerSelectedCssClass = ''; this._resizeHandler = null; this._isIE8InStandardMode = (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version > 7 && Sys.Browser.documentMode != 0); } Sys.Extended.UI.AccordionBehavior.prototype = { initialize: function() { /// /// The initialize function is responsible for getting the selected index from /// the ClientState mechanism and walking the children of the behavior's target /// to find all of the accordion's child panes. It builds up a collection of the /// panes from the headers and content sections. Then we hide all the content /// sections that aren't selected and initialize the layout. /// /// Sys.Extended.UI.AccordionBehavior.callBaseMethod(this, 'initialize'); this._headerClickHandler = Function.createDelegate(this, this._onHeaderClick); var state = this.get_ClientState(); if (state !== null && state !== '') { this._changeSelectedIndex(parseInt(state), false, true); } var nodes = this.get_element().childNodes; var index = {}; for (index.value = 0; index.value < nodes.length; index.value++) { var header = this._getNextDiv(nodes, index); if (!header) { break; } var content = this._getNextDiv(nodes, index); if (content) { this.addPane(header, content); index.value--; } } if (this._requireOpenedPane && !this.get_Pane() && this._panes.length > 0) { this._changeSelectedIndex(0, false, true); } this._initializeLayout(); }, _getNextDiv: function(nodes, index) { /// /// Get the next div in a sequence of child nodes starting at the /// given index /// /// /// Array of child nodes (i.e. element.childNodes) /// /// /// The index is an object of the form { value } where index.value represents /// the current index in the collection of nodes. We wrap the index in an object /// to perform the .NET equivalent of boxing so it can be passed by reference. /// /// /// The next DOM element representing a div tag, starting at the provided index. /// var div = null; while (index.value < nodes.length && (div = nodes[index.value++])) { if (div.tagName && (div.tagName.toLowerCase() === 'div')) { break; } } return div; }, addPane: function(header, content) { /// /// Create a new Accordion pane given references to its header and content divs /// and add it to the _panes collection. We also wrap the content div in a new /// container div, add a click handler to the header div, etc. /// /// /// Header element of the new Accordion pane /// /// /// Content element of the new Accordion pane /// /// /// New pane object added to the end of the Accordion's pane collection. The pane /// is an object of the form {header, content, animation} corresponding to that /// pane's header section, content section, and the animation used to open and /// close its content section. The content element is a new div that has been /// created to wrap the original div (so we can completely collapse it - even if it /// has padding, margins, etc.) which is pointed to by a dynamic _original property. /// The header element has a dynamic _index property indicating its position in the /// Accordion's pane collection (used primarily by the headers' shared click handler). /// Furthermore, the animation will either be an instance of LengthAnimation or /// ParallelAnimation (in the latter case, it will have two children which are a /// LengthAnimation and a FadeAnimation). There will be two dynamic properties /// _length and _fade pointing to each of these children (to easily set the length /// and fadeEffect properties). There is also a dynamic _ended property which is /// an event handler to be fired when the animation is complete, a dynamic _opening /// property to indicate whether the animation was opening or closing the pane, and /// a dynamic _pane property to provide a reference to the pane that was being /// animated. /// var pane = {}; pane.animation = null; pane.header = header; header._index = this._panes.length; $addHandler(header, "click", this._headerClickHandler); var accordion = this.get_element(); var wrapper = document.createElement('div'); accordion.insertBefore(wrapper, content); wrapper.appendChild(content); wrapper._original = content; pane.content = wrapper; wrapper.style.border = ''; wrapper.style.margin = ''; wrapper.style.padding = ''; Array.add(this._panes, pane); this._initializePane(header._index); content.style.display = 'block'; return pane; }, _getAnimation: function(pane) { /// /// Get the animation for the specified accordion section or demand create /// the animation if it doesn't already exist. /// /// /// The pane is an object of the form {header, content, animation} corresponding to /// that pane's header section, content section, and the animation used to open and /// close its content section. The content element is a new div that has been created /// to wrap the original div (so we can completely collapse it - even if it has /// padding, margins, etc.) which is pointed to by a dynamic _original property. The /// header element has a dynamic _index property indicating its position in the /// Accordion's pane collection (used primarily by the headers' shared click /// handler). Furthermore, the animation will either be an instance of /// LengthAnimation or ParallelAnimation (in the latter case, it will have two /// children which are a LengthAnimation and a FadeAnimation). There will be two /// dynamic properties _length and _fade pointing to each of these children (to /// easily set the length and fadeEffect properties). There is also a dynamic _ended /// property which is an event handler to be fired when the animation is complete, /// a dynamic _opening property to indicate whether the animation was opening or /// closing the pane, and a dynamic _pane property to provide a reference to the pane /// that was being animated. /// /// /// Animation for the desired section /// var animation = pane.animation; if (!animation) { var length = null; var fade = null; if (!this._fadeTransitions) { animation = length = new Sys.Extended.UI.Animation.LengthAnimation(pane.content, this._duration, this._framesPerSecond, "style", "height", 0, 0, "px"); } else { length = new Sys.Extended.UI.Animation.LengthAnimation(null, null, null, "style", "height", 0, 0, "px"); fade = new Sys.Extended.UI.Animation.FadeAnimation(null, null, null, Sys.Extended.UI.Animation.FadeEffect.FadeOut, 0, 1, false); animation = new Sys.Extended.UI.Animation.ParallelAnimation(pane.content, this._duration, this._framesPerSecond, [fade, length]); } pane.animation = animation; animation._length = length; animation._fade = fade; animation._pane = pane; animation._opening = true; animation._behavior = this; animation._ended = Function.createDelegate(pane.animation, this._onAnimationFinished); animation.add_ended(pane.animation._ended); animation.initialize(); } return animation; }, _onAnimationFinished: function() { /// /// _onAnimationFinished is an event handler played after an animation (to open/ /// close an accordion pane) has completed. The delegate for this function should /// have associated it with an animation (so the this references below are expecting /// to reach expando fields declared on the animation). It invokes _endPaneChange /// for the current pane. /// /// this._behavior._endPaneChange(this._pane, this._opening); }, _initializeLayout: function() { /// /// Setup the layout of the accordion (either when the behavior is created or when the /// AutoSize mode is changed). /// /// for (var i = 0; i < this._panes.length; i++) { var animation = this._panes[i].animation; if (animation && animation.get_isPlaying()) { animation.stop(); } } var accordion = this.get_element(); this._initialHeight = accordion.offsetHeight; var style = accordion.style; if (this._autoSize === Sys.Extended.UI.AutoSize.None) { this._disposeResizeHandler(); var isIE7 = (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version >= 7) if (!isIE7 || (isIE7 && style.height && style.height.length > 0)) { style.height = 'auto'; } if (!isIE7 || (isIE7 && style.overflow && style.overflow.length > 0)) { style.overflow = 'auto'; } } else { this._addResizeHandler(); style.height = accordion.offsetHeight + 'px'; style.overflow = 'hidden'; } for (var i = 0; i < this._panes.length; i++) { this._initializePane(i); } this._resizeSelectedPane(); }, _initializePane: function(index) { /// /// Setup the layout attributes for the pane so that it will be in a proper opened or /// closed. This will be called when adding a new pane for the first time or when /// changing the AutoSize mode. /// /// /// Index of the pane to initialize /// /// var pane = this.get_Pane(index); if (!pane) { return; } var wrapper = pane.content; var original = wrapper._original; var opened = (index === this._selectedIndex); wrapper.style.height = (opened || (this._autoSize === Sys.Extended.UI.AutoSize.Fill)) ? 'auto' : '0px'; wrapper.style.overflow = opened ? 'auto' : 'hidden'; wrapper.style.display = opened ? 'block' : 'none'; original.style.height = 'auto'; original.style.maxHeight = ''; original.style.overflow = opened ? 'auto' : 'hidden'; var opacity = (opened || !this._fadeTransitions) ? 1 : 0; if (this._autoSize === Sys.Extended.UI.AutoSize.Fill) { if ($common.getElementOpacity(original) != opacity) { $common.setElementOpacity(original, opacity); } if ($common.getElementOpacity(wrapper) != 1) { $common.setElementOpacity(wrapper, 1); } } else { if ($common.getElementOpacity(wrapper) != opacity) { $common.setElementOpacity(wrapper, opacity); } if ($common.getElementOpacity(original) != 1) { $common.setElementOpacity(original, 1); } } pane.header.className = this._selectedIndex === index ? (this._headerSelectedCssClass || this._headerCssClass) : this._headerCssClass; }, _addResizeHandler: function() { /// /// Attach the resize handler /// /// /// /// This has been pulled out into its own method since we need to selectively wire /// up the resize handler depending on the AutoSize mode. /// if (!this._resizeHandler) { this._resizeHandler = Function.createDelegate(this, this._resizeSelectedPane); $addHandler(window, "resize", this._resizeHandler); } }, dispose: function() { /// /// Dispose of the AccordionBehavior /// /// this._disposeResizeHandler(); this._disposeAnimations(); for (var i = this._panes.length - 1; i >= 0; i--) { var pane = this._panes[i]; if (pane) { if (pane.header) { pane.header._index = null; $removeHandler(pane.header, "click", this._headerClickHandler); pane.header = null; } if (pane.content) { pane.content._original = null; pane.content = null; } this._panes[i] = null; delete this._panes[i]; } } this._panes = null; this._headerClickHandler = null; Sys.Extended.UI.AccordionBehavior.callBaseMethod(this, 'dispose'); }, _disposeResizeHandler: function() { /// /// Remove the resize handler /// /// /// /// This has been pulled out into its own method since we need to selectively wire /// up the resize handler depending on the AutoSize mode. /// if (this._resizeHandler) { $removeHandler(window, "resize", this._resizeHandler); this._resizeHandler = null; } }, _disposeAnimations: function() { /// /// Dispose all the animations. This method was pulled out of dispose so we could /// allow the user to change the FadeTransitions property after the behavior was /// already initialized. We can merge it back into dispose once we support generic /// animations on the Accordion. /// /// for (var i = 0; i < this._panes.length; i++) { var animation = this._panes[i].animation; if (animation) { if (animation.get_isPlaying()) { animation.stop(); } if (animation._ended) { animation.remove_ended(animation._ended); animation._ended = null; } animation.dispose(); animation._length = null; animation._fade = null; animation._pane = null; animation._opening = null; animation._behavior = null; this._panes[i].animation = null; } } }, _resizeSelectedPane: function() { /// /// Adjust the size of the currently selected pane (upon initialization, /// resizing the window, etc.) /// /// var pane = this.get_Pane(); if (!pane) { return; } this._headersSize = this._getHeadersSize().height; var original = pane.content._original; switch (this._autoSize) { case Sys.Extended.UI.AutoSize.None: original.style.height = 'auto'; original.style.maxHeight = ''; break; case Sys.Extended.UI.AutoSize.Limit: var remaining = this._getRemainingHeight(false); original.style.height = 'auto'; original.style.maxHeight = remaining + 'px'; break; case Sys.Extended.UI.AutoSize.Fill: var remaining = this._getRemainingHeight(true); original.style.height = remaining + 'px'; original.style.maxHeight = ''; break; } }, _onHeaderClick: function(evt) { /// /// OnClick handler to open the desired pane /// /// Event info /// var header = evt.target; var accordion = this.get_element(); while (header && (header.parentNode !== accordion)) { header = header.parentNode; } evt.stopPropagation(); if (this._suppressHeaderPostbacks) { evt.preventDefault(); } var index = header._index; if ((index === this._selectedIndex) && !this._requireOpenedPane) { index = -1; } this._changeSelectedIndex(index, true); }, _changeSelectedIndex: function(index, animate, force) { /// /// Change the accordion's selected pane to a new index (and optionally show the change). /// /// /// Index of the new selected pane /// /// /// Whether or not to show the pane change (this is primarily intended to support /// restoring _selectedIndex in initialize before any panes have been added) /// /// /// We perform no action (i.e. raising events, animating, etc.) if the two indices represent /// the same pane (including the case when we have two different "no pane selected values" /// like -1 and -500). The force flag is used during initialization to skip this check since /// we aren't able to determine invalid values yet. /// /// var lastIndex = this._selectedIndex; var currentPane = this.get_Pane(index); var lastPane = this.get_Pane(lastIndex); if (!force && (currentPane == lastPane)) { return; } var eventArgs = new Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs(lastIndex, index); this.raiseSelectedIndexChanging(eventArgs); if (eventArgs.get_cancel()) { return; } if (lastPane) { lastPane.header.className = this._headerCssClass; } if (currentPane) { currentPane.header.className = (this._headerSelectedCssClass == '') ? this._headerCssClass : this._headerSelectedCssClass; } this._selectedIndex = index; this.set_ClientState(this._selectedIndex); if (animate) { this._changePanes(lastIndex); } this.raiseSelectedIndexChanged(new Sys.Extended.UI.AccordionSelectedIndexChangeEventArgs(lastIndex, index)); this.raisePropertyChanged('SelectedIndex'); }, _changePanes: function(lastIndex) { /// /// The _changePanes function is used to animate the change between two panes when /// the selected index changes. We will loop through each pane and get its /// animation (or demand create it if it doesn't have one yet), stop playing it if /// it's currently playing, change its parameters to either open or close, and then /// animate it. Because we have an animation for each pane and we stop them if they /// were already playing, the Accordion has the ability to nicely change panes /// again before the animation is finished. /// /// /// Index of the last selected Accordion pane /// /// if (!this.get_isInitialized()) { return; } var open = null; var close = null; for (var i = 0; i < this._panes.length; i++) { var pane = this._panes[i]; var animation = this._getAnimation(pane); if (animation.get_isPlaying()) { animation.stop(); } if (i == this._selectedIndex) { animation._opening = true; open = animation; } else if (i == lastIndex) { animation._opening = false; close = animation; } else { continue; } this._startPaneChange(pane, animation._opening); if (this._fadeTransitions) { animation._fade.set_effect(animation._opening ? Sys.Extended.UI.Animation.FadeEffect.FadeIn : Sys.Extended.UI.Animation.FadeEffect.FadeOut); } if (this._autoSize === Sys.Extended.UI.AutoSize.Fill) { animation.set_target(pane.content._original); animation._length.set_startValue($common.getContentSize(pane.content._original).height); animation._length.set_endValue(animation._opening ? this._getRemainingHeight(true) : 0); } else { animation.set_target(pane.content); animation._length.set_startValue(pane.content.offsetHeight); animation._length.set_endValue(animation._opening ? this._getRemainingHeight(false) : 0); } } if (close) { close.play(); } if (open) { open.play(); } }, _startPaneChange: function(pane, opening) { /// /// Setup the pane before it is animated. /// /// /// Pane that is being animated /// /// /// Whether or not the pane is being opened or closed /// /// var wrapper = pane.content; var original = wrapper._original; if (opening) { wrapper.style.display = 'block'; if (this._autoSize === Sys.Extended.UI.AutoSize.Fill && this._isIE8InStandardMode) { original.style.display = 'block'; } } else { wrapper.style.overflow = 'hidden'; original.style.overflow = 'hidden'; if (this._autoSize === Sys.Extended.UI.AutoSize.Limit) { wrapper.style.height = this._getTotalSize(original).height + 'px'; original.style.maxHeight = ''; } } }, _endPaneChange: function(pane, opening) { /// /// Clean the pane up after it's been animated. /// /// /// Pane that is being animated /// /// /// Whether or not the pane is being opened or closed /// /// var wrapper = pane.content; var original = wrapper._original; if (opening) { if (this._autoSize === Sys.Extended.UI.AutoSize.Limit) { var remaining = this._getRemainingHeight(true); original.style.maxHeight = remaining + 'px'; } original.style.overflow = 'auto'; wrapper.style.height = 'auto'; wrapper.style.overflow = 'auto'; } else { if (!this._isIE8InStandardMode) { wrapper.style.display = 'none'; } else { if (this._autoSize === Sys.Extended.UI.AutoSize.Fill) { original.style.display = 'none'; } else { wrapper.style.height = '0px'; } } } }, _getHeadersSize: function() { /// /// Compute the size of all the header sections /// /// /// Size of all header sections (of the form {width, height}). /// var total = { width: 0, height: 0 }; for (var i = 0; i < this._panes.length; i++) { var size = this._getTotalSize(this._panes[i].header); total.width = Math.max(total.width, size.width); total.height += size.height; } return total; }, _getRemainingHeight: function(includeGutter) { /// /// Determine how much remaining height we have to fill with the currently selected /// pane's content section after taking into account all the headers. This is primarily /// used for the Limit and Fill AutoSize modes. /// /// /// Whether or not we should include the gutter (padding, borders, margins) of the /// selected pane's original content section. This should be true whenever we're /// getting the remaining height for the original content section and false whenever /// we're getting the remaining height for its wrapper. /// /// /// Remaining height after all the headers have been accounted for /// var height = 0; var pane = this.get_Pane(); if (this._autoSize === Sys.Extended.UI.AutoSize.None) { if (pane) { height = this._getTotalSize(pane.content._original).height; } } else { height = this._headersSize; if (includeGutter && pane) { height += this._getGutterSize(pane.content._original).height; } var accordion = this.get_element(); height = Math.max(accordion.offsetHeight - height, 0); if (pane && (this._autoSize === Sys.Extended.UI.AutoSize.Limit)) { var required = this._getTotalSize(pane.content._original).height; if (required > 0) { height = Math.min(height, required); } } } return height; }, _getTotalSize: function(element) { /// /// Get the total size of an element, including its margins /// /// /// Element /// /// /// Total size of the element (in the form {width, height}) /// var size = $common.getSize(element); var box = $common.getMarginBox(element); size.width += box.horizontal; size.height += box.vertical; return size; }, _getGutterSize: function(element) { /// /// Get the extra "gutter" size around an element made up of its padding, /// borders, and margins. /// /// /// Element /// /// /// Size of the extra space (in the form of {height, width}) /// var gutter = { width: 0, height: 0 }; try { var box = $common.getPaddingBox(element); gutter.width += box.horizontal; gutter.height += box.vertical; } catch (ex) { } try { var box = $common.getBorderBox(element); gutter.width += box.horizontal; gutter.height += box.vertical; } catch (ex) { } var box = $common.getMarginBox(element); gutter.width += box.horizontal; gutter.height += box.vertical; return gutter; }, add_selectedIndexChanging: function(handler) { /// /// Add an event handler for the selectedIndexChanging event /// /// /// Event handler /// /// this.get_events().addHandler('selectedIndexChanging', handler); }, remove_selectedIndexChanging: function(handler) { /// /// Add an event handler for the selectedIndexChanging event /// /// /// Event handler /// /// this.get_events().removeHandler('selectedIndexChanging', handler); }, raiseSelectedIndexChanging: function(eventArgs) { /// /// Raise the selectedIndexChanging event /// /// /// Event arguments for the selectedIndexChanging event /// /// var handler = this.get_events().getHandler('selectedIndexChanging'); if (handler) { handler(this, eventArgs); } }, add_selectedIndexChanged: function(handler) { /// /// Add an event handler for the selectedIndexChanged event /// /// /// Event handler /// /// this.get_events().addHandler('selectedIndexChanged', handler); }, remove_selectedIndexChanged: function(handler) { /// /// Add an event handler for the selectedIndexChanged event /// /// /// Event handler /// /// this.get_events().removeHandler('selectedIndexChanged', handler); }, raiseSelectedIndexChanged: function(eventArgs) { /// /// Raise the selectedIndexChanged event /// /// /// Event arguments for the selectedIndexChanged event /// /// var handler = this.get_events().getHandler('selectedIndexChanged'); if (handler) { handler(this, eventArgs); } }, get_Pane: function(index) { /// /// Get a specific Accordion pane given its index. If no index is provided, get /// the currently selected pane. /// /// /// Index of the desired Accordion pane. If the index is not provided, we use /// the currently selected index. In the event the provided index (or the currently /// selected index) is outside the bounds of the panes collection, we return null. /// /// /// The desired pane object, or null if outside the the bounds of the _panes array. /// The pane is an object of the form {header, content, animation} corresponding to /// that pane's header section, content section, and the animation used to open and /// close its content section. The content element is a new div that has been /// created to wrap the original div (so we can completely collapse it - even if it /// has padding, margins, etc.) which is pointed to by a dynamic _original property. /// The header element has a dynamic _index property indicating its position in the /// Accordion's pane collection (used primarily by the headers' shared click handler). /// Furthermore, the animation will either be an instance of LengthAnimation or /// ParallelAnimation (in the latter case, it will have two children which are a /// LengthAnimation and a FadeAnimation). There will be two dynamic properties /// _length and _fade pointing to each of these children (to easily set the length /// and fadeEffect properties). There is also a dynamic _ended property which is an /// event handler to be fired when the animation is complete, a dynamic _opening /// property to indicate whether the animation was opening or closing the pane, and /// a dynamic _pane property to provide a reference to the pane that was being /// animated. /// if (index === undefined || index === null) { index = this._selectedIndex; } return (this._panes && index >= 0 && index < this._panes.length) ? this._panes[index] : null; }, get_Count: function() { /// /// Number of Accordion panes /// return this._panes ? this._panes.length : 0; }, get_TransitionDuration: function() { /// /// Length of time to transition between Accordion sections in /// milleseconds. The default value is 250ms. /// return this._duration * 1000; }, set_TransitionDuration: function(value) { if (this._duration != (value / 1000)) { this._duration = value / 1000; for (var i = 0; i < this._panes.length; i++) { var animation = this._panes[i].animation; if (animation) { animation.set_duration(this._duration); } } this.raisePropertyChanged('TransitionDuration'); } }, get_FramesPerSecond: function() { /// /// Number of steps per second in the transition animations. /// The default value is 30 frames per second. /// return this._framesPerSecond; }, set_FramesPerSecond: function(value) { if (this._framesPerSecond != value) { this._framesPerSecond = value; for (var i = 0; i < this._panes.length; i++) { var animation = this._panes[i].animation; if (animation) { animation.set_fps(this._framesPerSecond); } } this.raisePropertyChanged('FramesPerSecond'); } }, get_FadeTransitions: function() { /// /// Whether or not to fade the accordion panes when transitioning /// return this._fadeTransitions; }, set_FadeTransitions: function(value) { if (this._fadeTransitions != value) { this._fadeTransitions = value; this._disposeAnimations(); if (!this._fadeTransitions) { for (var i = 0; i < this._panes.length; i++) { if ($common.getElementOpacity(this._panes[i].content) != 1) { $common.setElementOpacity(this._panes[i].content, 1); } if ($common.getElementOpacity(this._panes[i].content._original) != 1) { $common.setElementOpacity(this._panes[i].content._original, 1); } } } this.raisePropertyChanged('FadeTransitions'); } }, get_HeaderCssClass: function() { /// /// This is the CSS class applied to each header. /// return this._headerCssClass; }, set_HeaderCssClass: function(value) { this._headerCssClass = value; this.raisePropertyChanged('HeaderCssClass'); }, get_HeaderSelectedCssClass: function() { /// /// This is the CSS class applied to the selected header. /// return this._headerSelectedCssClass; }, set_HeaderSelectedCssClass: function(value) { this._headerSelectedCssClass = value; this.raisePropertyChanged('HeaderSelectedCssClass'); }, get_AutoSize: function() { /// /// AutoSize mode /// return this._autoSize; }, set_AutoSize: function(value) { if (Sys.Browser.agent === Sys.Browser.InternetExplorer && value === Sys.Extended.UI.AutoSize.Limit) { value = Sys.Extended.UI.AutoSize.Fill; } if (this._autoSize != value) { this._autoSize = value; this._initializeLayout(); this.raisePropertyChanged('AutoSize'); } }, get_SelectedIndex: function() { /// /// Index of the currently selected Accordion section /// return this._selectedIndex; }, set_SelectedIndex: function(value) { this._changeSelectedIndex(value, true); }, get_requireOpenedPane: function() { /// /// Whether or not clicking the header will close the currently opened pane /// (which leaves all the Accordion's panes closed) /// return this._requireOpenedPane; }, set_requireOpenedPane: function(value) { if (this._requireOpenedPane != value) { this._requireOpenedPane = value; this.raisePropertyChanged('requireOpenedPane'); } }, get_suppressHeaderPostbacks: function() { /// /// Whether or not we suppress the client-side click handlers of any elements /// (including server controls like Button or HTML elements like anchor) in the /// header sections of the Accordion. /// return this._suppressHeaderPostbacks; }, set_suppressHeaderPostbacks: function(value) { if (this._suppressHeaderPostbacks != value) { this._suppressHeaderPostbacks = value; this.raisePropertyChanged('suppressHeaderPostbacks'); } } } Sys.Extended.UI.AccordionBehavior.registerClass('Sys.Extended.UI.AccordionBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.AccordionBehavior, { name: "accordion" }); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedAnimations", "ExtendedBase"], execute); } else { execute(); } })(); 6  & h( @ nnnnnnnnnnnnnnnnnnnn(  nnnnnnnnnnn6  & h( @ XtXtMkMkEdJiEdEdEdEdGkjN<:0EA;5Gkin0']j&V`$]m1HkizE5%V` 1ImjT,_j'KQ1Imkd8x#sCek~usgaMpktqmkc]RzN}GsGsQ|dWwEu3D{S}eVxFt3>zVd]H4[~S}mmu{Y4S}S}kskNS}üz;üz;üz;üz;S}VxSvTwS}‹pUz;‹pUz;‹pUz;‹pUz;ü‹püü‹püü‹püü‹pü(  RuRuQtOuPuPsNqInn) )Inn0(V_buKon0'Yd KoruuuuuJtmmmnngWJtdMpAJtdNrAJtqo{tIJtfNpLpJtďqR*ďqR*ďqR*ӯʓvӯʓvӯʓvӯʓw6  & h( @ t$t$WWWt$t$WWWWWWWWWt$WWWWWWWWWWWWWWWt$WWWWWWt$WWWWWWWWWt$t$WWWWWWWWWWWWWWWt$lZjXhVgT~dR|cPzbOy`Mw^Jv]It[GsYEqXDpVBWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWt$ǾϹѿмλ̸ʶɴDzưĭֶWWWWWW׾սԺWWWĮWWWWWWt$⿵WWWWWWĮWWWt$WWWĮWWWĮWWWWWWWWWWWWWWWWWWWWWWWWڸ·WWWطĮqWCDZsYEɳu[H˶w^Jͺy`Mϼ{bO~dRúgTǾiWlZёrёrёrЌkІa~UuIm=d1]'Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ёr}zwtqomjhfeeY ёr~zwtqnmjhfeeY ёr}zwuqoljhgeeY ёrёrёrЌkІa~UuIm=d1]'Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ?13????????????????????(  t$t$WWWt$t$WWWWWWWWWt$WWWWWWWWWWWWWWWt$t$WWWWWWWWWt$WWWWWW˵˵˵WWW˵˵˵WWWWWWt$WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWt$WWWWWWWWWпѻWWWWWWt$WWWWWWѻWWWt$WWWWWWWWWWWWWWWѻîWWWWWWWWWĪgUȲWWWcI5̶cI5ꪋꪋꪋ饄znbV}Jv@r9b/ꪋ¢}wee1ꪋꪋꪋꪋꦆvlbXv>r9?ZXVsTRPOMJIGEDB ( @ʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___www۬۬BGIF89a !,(P8@>,P;dGIF89a ض! ,AA TX !>E2$( X Kb @M;NGIF89a1<89<ݡSƎ!,+$0`@Tx0ÅB("Ë (`x ;:GIF89a.188<ݡSƎ!,@A*\ȰÇ H ;0GIF89ax䇿!, H0@;GIF89a}}}{{{vvvhhh^^^NNNKKKDDDAAA???===555333!:,@pH,rl 3JUN2`ڤ JYP+q +r/!`_Ka9%I'879KB#9)3e:41.2B(9!B,+ĽB*B BBBGA;!GIF89a-^@kIrCr.l4nX333!,%dilۊ+\,Wo$SIX8r0@ B00vvbb00'!;GIF89aʋʌʍʎʏʖ)^ʊʔʗʙ!I,I!$%"'*,CC&+0 C 034CFFC4Â,7CBCт059CGC9߂8 :CH误: ;C;;.i! j „!Dx x9@"=|T7 La A(VćA2Lre$8O.dȬ8Ĉ>E3B@ A$TZ bx!(ŋ6#nv48nبA@A-f80 ֕v@;GIF89aŶ|||llliiihhhfff^^^]]]333!(,@pH,rl 3JUN+]F:GEQ 'Sap'"E&Q $' B'%rz "#!   Ɋ֊ ܊GA;GIF89aLLM~~XXYҿpsKwNy]a:l=nrtdf[\X~~~}}}yyymmmjjjgggfffeeeccc\\\FFF666555333!_,_JGJC <[]^HIOZ _AK4WM@^^K=Y0X .?H̏L \ڐ:;RD>BQV1FESSNU4-tȘOB%G  BA"-lXɆG C$(W8Q"Ć *x MH4r@a 0XaDΣd(]ʴiStJJuꡫX;GIF89a?̎nRRR99u]ԐrrNNggg533깹p ~~~Y䐨҉r˩0@@hh@@Ny⟟<P%7$   )P=<< 68.(0H :`*( rmG(KHɫ˗0c); background-position: center; background-repeat: no-repeat; border-color: ButtonFace; height: 15px; width: 15px; } .ajax__combobox_itemlist { margin: 0px; padding: 0px; cursor: default; list-style-type: none; text-align: left; border: solid 1px ButtonShadow; background-color: Window; color: WindowText; } .ajax__combobox_itemlist li { white-space: nowrap; width: 100%; padding: 0 3px 0 2px; } PNG  IHDR#"Յ` pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxڤKUso=nNw'MO!3$& B bacذ`XX%B 3zP+dnm]}̂rwmh(˷~uιQƯ9yQJ\pqHN8փQ)L0<甁-t}"#yc=61BЙ3gZΝ@HEE @j5=C?3,ϖ_z?V֚e|@5˗/_{7?UQF֠Wɀz'O|dǎccZkMDﯩ0 !Xk]pa߾xٻzBq $Eao9?ӅCs^JRI N$ x^o|Gg^}S( _#GL$}eMc={+cQ`le @mǏ1{}k}HDQuޫ7 ,R 1XrZk[km)2dyssscG93Hzj>(mɘ`޽OmRRJi2 If2 YZkSJ)m۶PKadBú0DV+~[l@ !c` +[{jU(+];:QJiTJEz=܃?RGN2l@~8Έ"ZT+Lm"y.h-RʐRRE[:Jegj^7w5ĉ#")Zko""8p]〈N:=ڐR*۶ݻwOg``tg$ID)EZklXs^䜗8cipc,9/sQ"rRߡ$Iܶmf8-˚ ðᏮ B1zr)aagm0 yq$s\3KQaǁRʰm{lٰDbD!VWW^fgg?s&&&033X)%>} 7oi6سgz'/TrKDRJg~ݮI cj+WtN:!}̠VmON Pq 4g CCJɣ(Zu:p޽ߟ8q"纮kY XV3zi4 vy En3)!r ۷oxzz^x4 ZZA}u]czzoa^p@@{F>||M?i(LMM=>s Vl6btaT*|A- xi e̴@Jl圗Kw=vRǻa&J)cZju'|BRXdbzA^Tµkײ-ٯrq1Vv]wcl !?]ԪRV I5I7,7<k ۷;3rSM!Gk-DOe$֪du{V5f_;[eNIE \<$޳ `↦< amthoer8deBlᜯ5pO"@2ok)Uc=IENDB`8PNG  IHDR2 YtEXtSoftwareAdobe ImageReadyqe<IDATxԘGQ_Ӟvb-5!e#"!RR@tNKeOKİeY9E,KDDWfg{ޛ/ˌwf0 *7c ]M/JD삶e˄M M q( S~bܥuHÆ`xA7$2* (37 7lОX7hCQMեuc82&TI0Q:*&{&%U*F*tZcIfihnG3+VDt>탢N2SRǝ}M)MNNڧL83M$ڧumUD$VMQFޔ T-R ]ZO W>UxGCm!iSw4z,%r%TQL``.& SU >Kܐ>品*ˀ> ;ʄDʴ?[,cF>آc5F&<}dV TBS*~IENDB`K// (c) 2010 CodePlex Foundation Type.registerNamespace('Sys.Extended.UI.Seadragon'); Type.registerNamespace('Seadragon'); Seadragon.Point=Sys.Extended.UI.Seadragon.Point = function(x, y) { this.x = typeof (x) == "number" ? x : 0; this.y = typeof (y) == "number" ? y : 0; } Sys.Extended.UI.Seadragon.Point.prototype = { plus: function(point) { return new Sys.Extended.UI.Seadragon.Point(this.x + point.x, this.y + point.y); }, minus: function(point) { return new Sys.Extended.UI.Seadragon.Point(this.x - point.x, this.y - point.y); }, times: function(factor) { return new Sys.Extended.UI.Seadragon.Point(this.x * factor, this.y * factor); }, divide: function(factor) { return new Sys.Extended.UI.Seadragon.Point(this.x / factor, this.y / factor); }, negate: function() { return new Sys.Extended.UI.Seadragon.Point(-this.x, -this.y); }, distanceTo: function(point) { return Math.sqrt(Math.pow(this.x - point.x, 2) + Math.pow(this.y - point.y, 2)); }, apply: function(func) { return new Sys.Extended.UI.Seadragon.Point(func(this.x), func(this.y)); }, equals: function(point) { return (point instanceof Sys.Extended.UI.Seadragon.Point) && (this.x === point.x) && (this.y === point.y); }, toString: function() { return "(" + this.x + "," + this.y + ")"; } } Sys.Extended.UI.Seadragon.Point.registerClass('Sys.Extended.UI.Seadragon.Point', null, Sys.IDisposable); ! // (c) 2010 CodePlex Foundation Type.registerNamespace('Sys.Extended.UI.Seadragon'); Sys.Extended.UI.Seadragon.Job = function(src, callback) { this._image = null; this._timeout = null; this._src = src; this._callback = callback; this.TIMEOUT = 5000; } Sys.Extended.UI.Seadragon.Job.prototype = { _finish: function(success) { this._image.onload = null; this._image.onabort = null; this._image.onerror = null; if (this._timeout) { window.clearTimeout(this._timeout); } var image = this._image; var callback = this._callback; window.setTimeout(function() { callback(this._src, success ? image : null); }, 1); }, _onloadHandler: function() { this._finish(true); }, _onerrorHandler: function() { this._finish(false); }, start: function() { this._image = new Image(); this._image.onload = Function.createDelegate(this, this._onloadHandler); this._image.onabort = Function.createDelegate(this, this._onerrorHandler); this._image.onerror = Function.createDelegate(this, this._onerrorHandler); this._timeout = window.setTimeout(Function.createDelegate(this, this._onerrorHandler), this.TIMEOUT); this._image.src = this._src; } } Sys.Extended.UI.Seadragon.Job.registerClass('Sys.Extended.UI.Seadragon.Job', null, Sys.IDisposable); Sys.Extended.UI.Seadragon.ImageLoader = function(imageLoaderLimit) { this._downloading = 0; this.imageLoaderLimit = imageLoaderLimit; } Sys.Extended.UI.Seadragon.ImageLoader.prototype = { _onComplete: function(callback, src, image) { this._downloading--; if (typeof (callback) == "function") { try { callback(image); } catch (e) { Seadragon.Debug.error(e.name + " while executing " + src + " callback: " + e.message, e); } } }, loadImage: function(src, callback) { if (this._downloading >= this.imageLoaderLimit) { return false; } var func = Seadragon.Utils.createCallback(null, Function.createDelegate(this, this._onComplete), callback); var job = new Sys.Extended.UI.Seadragon.Job(src, func); this._downloading++; job.start(); return true; } } Sys.Extended.UI.Seadragon.ImageLoader.registerClass('Sys.Extended.UI.Seadragon.ImageLoader', null, Sys.IDisposable); k// (c) 2010 CodePlex Foundation Type.registerNamespace('Sys.Extended.UI.Seadragon'); Type.registerNamespace('Seadragon'); var QUOTA = 100; // the max number of images we should keep in memory var MIN_PIXEL_RATIO = 0.5; // the most shrunk a tile should be var browser = Seadragon.Utils.getBrowser(); var browserVer = Seadragon.Utils.getBrowserVersion(); var subpixelRenders = browser == Seadragon.Browser.FIREFOX || browser == Seadragon.Browser.OPERA || (browser == Seadragon.Browser.SAFARI && browserVer >= 4) || (browser == Seadragon.Browser.CHROME && browserVer >= 2); var useCanvas = typeof (document.createElement("canvas").getContext) == "function" && subpixelRenders; Sys.Extended.UI.Seadragon.Tile = function(level, x, y, bounds, exists, url) { this.level = level; this.x = x; this.y = y; this.bounds = bounds; // where this tile fits, in normalized coordinates this.exists = exists; // part of sparse image? tile hasn't failed to load? this.loaded = false; // is this tile loaded? this.loading = false; // or is this tile loading? this.elmt = null; // the HTML element for this tile this.image = null; // the Image object for this tile this.url = url; // the URL of this tile's image this.style = null; // alias of this.elmt.style this.position = null; // this tile's position on screen, in pixels this.size = null; // this tile's size on screen, in pixels this.blendStart = null; // the start time of this tile's blending this.opacity = null; // the current opacity this tile should be this.distance = null; // the distance of this tile to the viewport center this.visibility = null; // the visibility score of this tile this.beingDrawn = false; // whether this tile is currently being drawn this.lastTouchTime = 0; // the time that tile was last touched } Sys.Extended.UI.Seadragon.Tile.prototype = { dispose: function() { }, toString: function() { return this.level + "/" + this.x + "_" + this.y; }, drawHTML: function(container) { if (!this.loaded) { Seadragon.Debug.error("Attempting to draw tile " + this.toString() + " when it's not yet loaded."); return; } if (!this.elmt) { this.elmt = Seadragon.Utils.makeNeutralElement("img"); this.elmt.src = this.url; this.style = this.elmt.style; this.style.position = "absolute"; this.style.msInterpolationMode = "nearest-neighbor"; } var elmt = this.elmt; var style = this.style; var position = this.position.apply(Math.floor); var size = this.size.apply(Math.ceil); if (elmt.parentNode != container) { container.appendChild(elmt); } style.left = position.x + "px"; style.top = position.y + "px"; style.width = size.x + "px"; style.height = size.y + "px"; Seadragon.Utils.setElementOpacity(elmt, this.opacity); }, drawCanvas: function(context) { if (!this.loaded) { Seadragon.Debug.error("Attempting to draw tile " + this.toString() + " when it's not yet loaded."); return; } var position = this.position; var size = this.size; context.globalAlpha = this.opacity; context.drawImage(this.image, position.x, position.y, size.x, size.y); }, unload: function() { if (this.elmt && this.elmt.parentNode) { this.elmt.parentNode.removeChild(this.elmt); } this.elmt = null; this.image = null; this.loaded = false; this.loading = false; } } Sys.Extended.UI.Seadragon.Tile.registerClass('Sys.Extended.UI.Seadragon.Tile', null, Sys.IDisposable); Sys.Extended.UI.Seadragon.Overlay = function(elmt, loc, placement) { this.elmt = elmt; this.scales = (loc instanceof Sys.Extended.UI.Seadragon.Rect); this.bounds = new Sys.Extended.UI.Seadragon.Rect(loc.x, loc.y, loc.width, loc.height); this.placement = loc instanceof Sys.Extended.UI.Seadragon.Point ? placement : Sys.Extended.UI.Seadragon.OverlayPlacement.TOP_LEFT; // rects are always top-left this.position = new Sys.Extended.UI.Seadragon.Point(loc.x, loc.y); this.size = new Sys.Extended.UI.Seadragon.Point(loc.width, loc.height); this.style = elmt.style; } Sys.Extended.UI.Seadragon.Overlay.prototype = { adjust: function(position, size) { switch (this.placement) { case Sys.Extended.UI.Seadragon.OverlayPlacement.TOP_LEFT: break; case Sys.Extended.UI.Seadragon.OverlayPlacement.TOP: position.x -= size.x / 2; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.TOP_RIGHT: position.x -= size.x; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.RIGHT: position.x -= size.x; position.y -= size.y / 2; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.BOTTOM_RIGHT: position.x -= size.x; position.y -= size.y; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.BOTTOM: position.x -= size.x / 2; position.y -= size.y; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.BOTTOM_LEFT: position.y -= size.y; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.LEFT: position.y -= size.y / 2; break; case Sys.Extended.UI.Seadragon.OverlayPlacement.CENTER: default: position.x -= size.x / 2; position.y -= size.y / 2; break; } }, destroy: function() { var elmt = this.elmt; var style = this.style; if (elmt.parentNode) { elmt.parentNode.removeChild(elmt); } style.top = ""; style.left = ""; style.position = ""; if (this.scales) { style.width = ""; style.height = ""; } }, drawHTML: function(container) { var elmt = this.elmt; var style = this.style; var scales = this.scales; if (elmt.parentNode != container) { container.appendChild(elmt); } if (!scales) { this.size = Seadragon.Utils.getElementSize(elmt); } var position = this.position; var size = this.size; this.adjust(position, size); position = position.apply(Math.floor); size = size.apply(Math.ceil); style.left = position.x + "px"; style.top = position.y + "px"; style.position = "absolute"; if (scales) { style.width = size.x + "px"; style.height = size.y + "px"; } }, update: function(loc, placement) { this.scales = (loc instanceof Sys.Extended.UI.Seadragon.Rect); this.bounds = new Sys.Extended.UI.Seadragon.Rect(loc.x, loc.y, loc.width, loc.height); this.placement = loc instanceof Sys.Extended.UI.Seadragon.Point ? placement : Sys.Extended.UI.Seadragon.OverlayPlacement.TOP_LEFT; // rects are always top-left } } Sys.Extended.UI.Seadragon.Overlay.registerClass('Sys.Extended.UI.Seadragon.Overlay', null, Sys.IDisposable); Sys.Extended.UI.Seadragon.Drawer = function(source, viewport, elmt) { this._container = Seadragon.Utils.getElement(elmt); this._canvas = Seadragon.Utils.makeNeutralElement(useCanvas ? "canvas" : "div"); this._context = useCanvas ? this._canvas.getContext("2d") : null; this._viewport = viewport; this._source = source; this.config = this._viewport.config; this._imageLoader = new Sys.Extended.UI.Seadragon.ImageLoader(this.config.imageLoaderLimit); this._profiler = new Sys.Extended.UI.Seadragon.Profiler(); this._minLevel = source.minLevel; this._maxLevel = source.maxLevel; this._tileSize = source.tileSize; this._tileOverlap = source.tileOverlap; this._normHeight = source.dimensions.y / source.dimensions.x; this._cacheNumTiles = {}; // 1d dictionary [level] --> Point this._cachePixelRatios = {}; // 1d dictionary [level] --> Point this._tilesMatrix = {}; // 3d dictionary [level][x][y] --> Tile this._tilesLoaded = []; // unordered list of Tiles with loaded images this._coverage = {}; // 3d dictionary [level][x][y] --> Boolean this._overlays = []; // unordered list of Overlays added this._lastDrawn = []; // unordered list of Tiles drawn last frame this._lastResetTime = 0; this._midUpdate = false; this._updateAgain = true; this.elmt = this._container; this._init(); } Sys.Extended.UI.Seadragon.Drawer.prototype = { dispose: function() { }, _init: function() { this._canvas.style.width = "100%"; this._canvas.style.height = "100%"; this._canvas.style.position = "absolute"; this._container.style.textAlign = "left"; // explicit left-align this._container.appendChild(this._canvas); }, _compareTiles: function(prevBest, tile) { if (!prevBest) { return tile; } if (tile.visibility > prevBest.visibility) { return tile; } else if (tile.visibility == prevBest.visibility) { if (tile.distance < prevBest.distance) { return tile; } } return prevBest; }, _getNumTiles: function(level) { if (!this._cacheNumTiles[level]) { this._cacheNumTiles[level] = this._source.getNumTiles(level); } return this._cacheNumTiles[level]; }, _getPixelRatio: function(level) { if (!this._cachePixelRatios[level]) { this._cachePixelRatios[level] = this._source.getPixelRatio(level); } return this._cachePixelRatios[level]; }, _getTile: function(level, x, y, time, numTilesX, numTilesY) { if (!this._tilesMatrix[level]) { this._tilesMatrix[level] = {}; } if (!this._tilesMatrix[level][x]) { this._tilesMatrix[level][x] = {}; } if (!this._tilesMatrix[level][x][y]) { var xMod = (numTilesX + (x % numTilesX)) % numTilesX; var yMod = (numTilesY + (y % numTilesY)) % numTilesY; var bounds = this._source.getTileBounds(level, xMod, yMod); var exists = this._source.tileExists(level, xMod, yMod); var url = this._source.getTileUrl(level, xMod, yMod); bounds.x += 1.0 * (x - xMod) / numTilesX; bounds.y += this._normHeight * (y - yMod) / numTilesY; this._tilesMatrix[level][x][y] = new Sys.Extended.UI.Seadragon.Tile(level, x, y, bounds, exists, url); } var tile = this._tilesMatrix[level][x][y]; tile.lastTouchTime = time; return tile; }, _loadTile: function(tile, time) { tile.loading = this._imageLoader.loadImage(tile.url, Seadragon.Utils.createCallback(null, Function.createDelegate(this, this._onTileLoad), tile, time)); }, _onTileLoad: function(tile, time, image) { tile.loading = false; if (this._midUpdate) { Seadragon.Debug.error("Tile load callback in middle of drawing routine."); return; } else if (!image) { Seadragon.Debug.log("Tile " + tile + " failed to load: " + tile.url); tile.exists = false; return; } else if (time < this._lastResetTime) { Seadragon.Debug.log("Ignoring tile " + tile + " loaded before reset: " + tile.url); return; } tile.loaded = true; tile.image = image; var insertionIndex = this._tilesLoaded.length; if (this._tilesLoaded.length >= QUOTA) { var cutoff = Math.ceil(Math.log(this._tileSize) / Math.log(2)); var worstTile = null; var worstTileIndex = -1; for (var i = this._tilesLoaded.length - 1; i >= 0; i--) { var prevTile = this._tilesLoaded[i]; if (prevTile.level <= this._cutoff || prevTile.beingDrawn) { continue; } else if (!worstTile) { worstTile = prevTile; worstTileIndex = i; continue; } var prevTime = prevTile.lastTouchTime; var worstTime = worstTile.lastTouchTime; var prevLevel = prevTile.level; var worstLevel = worstTile.level; if (prevTime < worstTime || (prevTime == worstTime && prevLevel > worstLevel)) { worstTile = prevTile; worstTileIndex = i; } } if (worstTile && worstTileIndex >= 0) { worstTile.unload(); insertionIndex = worstTileIndex; } } this._tilesLoaded[insertionIndex] = tile; this._updateAgain = true; }, _clearTiles: function() { this._tilesMatrix = {}; this._tilesLoaded = []; }, /** * Returns true if the given tile provides coverage to lower-level tiles of * lower resolution representing the same content. If neither x nor y is * given, returns true if the entire visible level provides coverage. * * Note that out-of-bounds tiles provide coverage in this sense, since * there's no content that they would need to cover. Tiles at non-existent * levels that are within the image bounds, however, do not. */ _providesCoverage: function(level, x, y) { if (!this._coverage[level]) { return false; } if (x === undefined || y === undefined) { var rows = this._coverage[level]; for (var i in rows) { if (rows.hasOwnProperty(i)) { var cols = rows[i]; for (var j in cols) { if (cols.hasOwnProperty(j) && !cols[j]) { return false; } } } } return true; } return (this._coverage[level][x] === undefined || this._coverage[level][x][y] === undefined || this._coverage[level][x][y] === true); }, /** * Returns true if the given tile is completely covered by higher-level * tiles of higher resolution representing the same content. If neither x * nor y is given, returns true if the entire visible level is covered. */ _isCovered: function(level, x, y) { if (x === undefined || y === undefined) { return this._providesCoverage(level + 1); } else { return (this._providesCoverage(level + 1, 2 * x, 2 * y) && this._providesCoverage(level + 1, 2 * x, 2 * y + 1) && this._providesCoverage(level + 1, 2 * x + 1, 2 * y) && this._providesCoverage(level + 1, 2 * x + 1, 2 * y + 1)); } }, /** * Sets whether the given tile provides coverage or not. */ _setCoverage: function(level, x, y, covers) { if (!this._coverage[level]) { Seadragon.Debug.error("Setting coverage for a tile before its " + "level's coverage has been reset: " + level); return; } if (!this._coverage[level][x]) { this._coverage[level][x] = {}; } this._coverage[level][x][y] = covers; }, /** * Resets coverage information for the given level. This should be called * after every draw routine. Note that at the beginning of the next draw * routine, coverage for every visible tile should be explicitly set. */ _resetCoverage: function(level) { this._coverage[level] = {}; }, _compareTiles: function(prevBest, tile) { if (!prevBest) { return tile; } if (tile.visibility > prevBest.visibility) { return tile; } else if (tile.visibility == prevBest.visibility) { if (tile.distance < prevBest.distance) { return tile; } } return prevBest; }, _getOverlayIndex: function(elmt) { for (var i = this._overlays.length - 1; i >= 0; i--) { if (this._overlays[i].elmt == elmt) { return i; } } return -1; }, _updateActual: function() { this._updateAgain = false; var _canvas = this._canvas; var _context = this._context; var _container = this._container; var _useCanvas = useCanvas; var _lastDrawn = this._lastDrawn; while (_lastDrawn.length > 0) { var tile = _lastDrawn.pop(); tile.beingDrawn = false; } var viewportSize = this._viewport.getContainerSize(); var viewportWidth = viewportSize.x; var viewportHeight = viewportSize.y; _canvas.innerHTML = ""; if (_useCanvas) { _canvas.width = viewportWidth; _canvas.height = viewportHeight; _context.clearRect(0, 0, viewportWidth, viewportHeight); } var viewportBounds = this._viewport.getBounds(true); var viewportTL = viewportBounds.getTopLeft(); var viewportBR = viewportBounds.getBottomRight(); if (!this.config.wrapHorizontal && (viewportBR.x < 0 || viewportTL.x > 1)) { return; } else if (!this.config.wrapVertical && (viewportBR.y < 0 || viewportTL.y > this._normHeight)) { return; } var _abs = Math.abs; var _ceil = Math.ceil; var _floor = Math.floor; var _log = Math.log; var _max = Math.max; var _min = Math.min; var alwaysBlend = this.config.alwaysBlend; var blendTimeMillis = 1000 * this.config.blendTime; var immediateRender = this.config.immediateRender; var minDimension = this.config.minZoomDimension; // for backwards compatibility var minImageRatio = this.config.minImageRatio; var wrapHorizontal = this.config.wrapHorizontal; var wrapVertical = this.config.wrapVertical; if (!wrapHorizontal) { viewportTL.x = _max(viewportTL.x, 0); viewportBR.x = _min(viewportBR.x, 1); } if (!wrapVertical) { viewportTL.y = _max(viewportTL.y, 0); viewportBR.y = _min(viewportBR.y, this._normHeight); } var best = null; var haveDrawn = false; var currentTime = new Date().getTime(); var viewportCenter = this._viewport.pixelFromPoint(this._viewport.getCenter()); var zeroRatioT = this._viewport.deltaPixelsFromPoints(this._source.getPixelRatio(0), false).x; var optimalPixelRatio = immediateRender ? 1 : zeroRatioT; minDimension = minDimension || 64; var lowestLevel = _max(this._minLevel, _floor(_log(minDimension) / _log(2))); var zeroRatioC = this._viewport.deltaPixelsFromPoints(this._source.getPixelRatio(0), true).x; var highestLevel = _min(this._maxLevel, _floor(_log(zeroRatioC / MIN_PIXEL_RATIO) / _log(2))); lowestLevel = _min(lowestLevel, highestLevel); for (var level = highestLevel; level >= lowestLevel; level--) { var drawLevel = false; var renderPixelRatioC = this._viewport.deltaPixelsFromPoints( this._source.getPixelRatio(level), true).x; // note the .x! if ((!haveDrawn && renderPixelRatioC >= MIN_PIXEL_RATIO) || level == lowestLevel) { drawLevel = true; haveDrawn = true; } else if (!haveDrawn) { continue; } this._resetCoverage(level); var levelOpacity = _min(1, (renderPixelRatioC - 0.5) / 0.5); var renderPixelRatioT = this._viewport.deltaPixelsFromPoints( this._source.getPixelRatio(level), false).x; var levelVisibility = optimalPixelRatio / _abs(optimalPixelRatio - renderPixelRatioT); var tileTL = this._source.getTileAtPoint(level, viewportTL); var tileBR = this._source.getTileAtPoint(level, viewportBR); var numTiles = this._getNumTiles(level); var numTilesX = numTiles.x; var numTilesY = numTiles.y; if (!wrapHorizontal) { tileBR.x = _min(tileBR.x, numTilesX - 1); } if (!wrapVertical) { tileBR.y = _min(tileBR.y, numTilesY - 1); } for (var x = tileTL.x; x <= tileBR.x; x++) { for (var y = tileTL.y; y <= tileBR.y; y++) { var tile = this._getTile(level, x, y, currentTime, numTilesX, numTilesY); var drawTile = drawLevel; this._setCoverage(level, x, y, false); if (!tile.exists) { continue; } if (haveDrawn && !drawTile) { if (this._isCovered(level, x, y)) { this._setCoverage(level, x, y, true); } else { drawTile = true; } } if (!drawTile) { continue; } var boundsTL = tile.bounds.getTopLeft(); var boundsSize = tile.bounds.getSize(); var positionC = this._viewport.pixelFromPoint(boundsTL, true); var sizeC = this._viewport.deltaPixelsFromPoints(boundsSize, true); if (!this._tileOverlap) { sizeC = sizeC.plus(new Sys.Extended.UI.Seadragon.Point(1, 1)); } var positionT = this._viewport.pixelFromPoint(boundsTL, false); var sizeT = this._viewport.deltaPixelsFromPoints(boundsSize, false); var tileCenter = positionT.plus(sizeT.divide(2)); var tileDistance = viewportCenter.distanceTo(tileCenter); tile.position = positionC; tile.size = sizeC; tile.distance = tileDistance; tile.visibility = levelVisibility; if (tile.loaded) { if (!tile.blendStart) { tile.blendStart = currentTime; } var deltaTime = currentTime - tile.blendStart; var opacity = _min(1, deltaTime / blendTimeMillis); if (alwaysBlend) { opacity *= levelOpacity; } tile.opacity = opacity; _lastDrawn.push(tile); if (opacity == 1) { this._setCoverage(level, x, y, true); } else if (deltaTime < blendTimeMillis) { updateAgain = true; } } else if (tile.Loading) { } else { best = this._compareTiles(best, tile); } } } if (this._providesCoverage(level)) { break; } } for (var i = _lastDrawn.length - 1; i >= 0; i--) { var tile = _lastDrawn[i]; if (_useCanvas) { tile.drawCanvas(_context); } else { tile.drawHTML(_canvas); } tile.beingDrawn = true; } var numOverlays = this._overlays.length; for (var i = 0; i < numOverlays; i++) { var overlay = this._overlays[i]; var bounds = overlay.bounds; overlay.position = this._viewport.pixelFromPoint(bounds.getTopLeft(), true); overlay.size = this._viewport.deltaPixelsFromPoints(bounds.getSize(), true); overlay.drawHTML(_container); } if (best) { this._loadTile(best, currentTime); this._updateAgain = true; // because we haven't finished drawing, so } }, addOverlay: function(elmt, loc, placement) { var elmt = Seadragon.Utils.getElement(elmt); if (this._getOverlayIndex(elmt) >= 0) { return; // they're trying to add a duplicate overlay } this._overlays.push(new Sys.Extended.UI.Seadragon.Overlay(elmt, loc, placement)); this._updateAgain = true; }, updateOverlay: function(elmt, loc, placement) { var elmt = Seadragon.Utils.getElement(elmt); var i = this._getOverlayIndex(elmt); if (i >= 0) { this._overlays[i].update(loc, placement); this._updateAgain = true; } }, removeOverlay: function(elmt) { var elmt = Seadragon.Utils.getElement(elmt); var i = this._getOverlayIndex(elmt); if (i >= 0) { this._overlays[i].destroy(); this._overlays.splice(i, 1); this._updateAgain = true; } }, clearOverlays: function() { while (this._overlays.length > 0) { this._overlays.pop().destroy(); this._updateAgain = true; } }, needsUpdate: function() { return this._updateAgain; }, numTilesLoaded: function() { return this._tilesLoaded.length; }, reset: function() { this._clearTiles(); this._lastResetTime = new Date().getTime(); this._updateAgain = true; }, update: function() { this._profiler.beginUpdate(); this._midUpdate = true; this._updateActual(); this._midUpdate = false; this._profiler.endUpdate(); }, idle: function() { } } Sys.Extended.UI.Seadragon.Drawer.registerClass('Sys.Extended.UI.Seadragon.Drawer', null, Sys.IDisposable); // (c) 2010 CodePlex Foundation Type.registerNamespace('Sys.Extended.UI.Seadragon'); Sys.Extended.UI.Seadragon.DisplayRect = function(x, y, width, height, minLevel, maxLevel) { Sys.Extended.UI.Seadragon.DisplayRect.initializeBase(this, [x, y, width, height]); this.minLevel = minLevel; this.maxLevel = maxLevel; } Sys.Extended.UI.Seadragon.DisplayRect.registerClass('Sys.Extended.UI.Seadragon.DisplayRect', Sys.Extended.UI.Seadragon.Rect); // (c) 2010 CodePlex Foundation Type.registerNamespace("Sys.Extended.UI.Seadragon");Sys.Extended.UI.Seadragon.DziError=function(a){Sys.Extended.UI.Seadragon.DziError.initializeBase(this,[a]);this.message=a};Sys.Extended.UI.Seadragon.DziError.registerClass("Sys.Extended.UI.Seadragon.DziError",Error);Sys.Extended.UI.Seadragon.DziTileSource=function(h,g,e,c,f,d,b){var a=this;Sys.Extended.UI.Seadragon.DziTileSource.initializeBase(a,[h,g,e,c,null,null]);a._levelRects={};a.tilesUrl=f;a.fileFormat=d;a.displayRects=b;a._init()};Sys.Extended.UI.Seadragon.DziTileSource.prototype={_init:function(){var a=this;if(!a.displayRects)return;for(var d=a.displayRects.length-1;d>=0;d--)for(var c=a.displayRects[d],b=c.minLevel;b<=c.maxLevel;b++){if(!a._levelRects[b])a._levelRects[b]=[];a._levelRects[b].push(c)}},getTileUrl:function(a,b,c){return[this.tilesUrl,a,"/",b,"_",c,".",this.fileFormat].join("")},tileExists:function(c,k,l){var a=this,d=a._levelRects[c];if(!d||!d.length)return true;for(var j=d.length-1;j>=0;j--){var b=d[j];if(cb.maxLevel)continue;var e=a.getLevelScale(c),f=b.x*e,g=b.y*e,h=f+b.width*e,i=g+b.height*e;f=Math.floor(f/a.tileSize);g=Math.floor(g/a.tileSize);h=Math.ceil(h/a.tileSize);i=Math.ceil(i/a.tileSize);if(f<=k&&k-1)c[c.length-1]=j.slice(0,l);var m=c.join("/")+"_files/";function g(a,c){try{return a(c,m)}catch(e){if(i){d=this.getError(e).message;return b}else throw this.getError(e);}}if(i){if(e){var k=Function.createDelegate(a,a.processResponse);window.setTimeout(function(){var a=g(k,Seadragon.Utils.parseXml(e));f(a,d)},1)}else{var k=Function.createDelegate(a,a.processResponse);Seadragon.Utils.makeAjaxRequest(h,function(b){var a=g(k,b);f(a,d)})}return b}return e?g(Function.createDelegate(a,a.processXml),Seadragon.Utils.parseXml(e)):g(Function.createDelegate(a,a.processResponse),Seadragon.Utils.makeAjaxRequest(h))},processResponse:function(a,e){if(!a)throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString("Errors.Security"));else if(a.status!==200&&a.status!==0){var c=a.status,d=c==404?"Not Found":a.statusText;throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString("Errors.Status",c,d));}var b=null;if(a.responseXML&&a.responseXML.documentElement)b=a.responseXML;else if(a.responseText)b=Seadragon.Utils.parseXml(a.responseText);return this.processXml(b,e)},processXml:function(c,e){var a="Errors.Dzi";if(!c||!c.documentElement)throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString("Errors.Xml"));var d=c.documentElement,b=d.tagName;if(b=="Image")try{return this.processDzi(d,e)}catch(g){var f=Seadragon.Strings.getString(a);throw g instanceof Sys.Extended.UI.Seadragon.DziError?g:new Sys.Extended.UI.Seadragon.DziError(f);}else if(b=="Collection")throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString("Errors.Dzc"));else if(b=="Error")return this.processError(d);throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString(a));},processDzi:function(a,k){var c=a.getAttribute("Format");if(!Seadragon.Utils.imageFormatSupported(c))throw new Sys.Extended.UI.Seadragon.DziError(Seadragon.Strings.getString("Errors.ImageFormat",c.toUpperCase()));for(var h=a.getElementsByTagName("Size")[0],e=a.getElementsByTagName("DisplayRect"),m=parseInt(h.getAttribute("Width"),10),l=parseInt(h.getAttribute("Height"),10),j=parseInt(a.getAttribute("TileSize")),i=parseInt(a.getAttribute("Overlap")),g=[],d=0;d]*?"+name+"=\")([^\"]*?)\"","ig"),tempFunc); if (n_value == "") { element.outerHTML.replace(new RegExp("^(?:<[^>]*?"+name+"=')([^']*?)'","ig"),tempFunc); } if (n_value == "") { element.outerHTML.replace(new RegExp("^(?:<[^>]*?"+name+"=)([^\s>]*?)","ig"),tempFunc); } if (value != n_value && n_value != "") { value = n_value; value = value.replace(/&/g,"&"); } return value; } Sys.Extended.UI.HTMLEditor.getRealAttribute = function(element,name) { var searchName = name.toLowerCase(); var attrs = element.attributes; var value = ""; for (i = 0; i < attrs.length; ++i) { var a = attrs.item(i); if (!a.specified) continue; var name = a.name.toLowerCase(); if (name == searchName) { value = a.value; if (Sys.Extended.UI.HTMLEditor.isIE) { value = Sys.Extended.UI.HTMLEditor.getRealAttributeIE(element, name, value); } if (name == "src" || name == "href") value = value.replace(/(\(S\([A-Za-z0-9_]+\)\)\/)/,""); break; } } return value; } Sys.Extended.UI.HTMLEditor.enabledWordTags = [ "img", "strong", "p", "b", "i", "u", "a", "h1", "h2", "h3", "h4", "h5", "h6", "table", "tbody", "tr", "td", "ul", "ol", "li", "span", "div", "font", "xml", "del", "ins", "em", "sub", "sup", "hr", "br" ]; Sys.Extended.UI.HTMLEditor.cleanUp = function(html) { var old_ret; var ret = Sys.Extended.UI.HTMLEditor.Trim(html.replace(/[\x00-\x1F]+/g," ")) .replace(/^[^\u0000]+?]*?)>/gi,"").replace(/<\/html(?:[^>]*?)>[^\u0000]*$/gi,"") .replace(/]*?)>[^\u0000]*?<\/head(?:[^>]*?)>/gi,"") .replace(/]*?>([^\u0000]*?)<\/body(?:[^>]*?)>/gi,"$1") .replace(/<\/?html(?:[^>]*?)>/gi,"") .replace(/<\/?head(?:[^>]*?)>/gi,"") .replace(/<\/?body(?:[^>]*?)>/gi,"") .replace(//ig,"") // remove comments .replace(/(<[\/]?)(?:o|v|x|p|w|\?xml):(\w+)([^>]*?>)/ig,"$1$2$3") // remove prefixes .replace(/<(IMAGEDATA)([^>]*?)>/ig,"") // replace ImageData .replace(/]*>

 <\/p><\/p>/ig,"
") // remove empty P .replace(/]*?\/>/ig,"").replace(/<(p|div)[^>]*?> <\/(\1)[^>]*?>/ig,"").replace(/<(p|div)[^>]*?><\/(\1)[^>]*?>/ig,""); do { old_ret = ret; ret = ret.replace(/<([^>]*)(?:class|size|lang|face|start|type|border|[ovwxp]:\w+)=(?:\'[^\']*\'|\"[^\"]*\"|[^> ]+)([^>]*)>/ig, "<$1$2>"); } while(ret != old_ret) var div = document.createElement("div"); div.innerHTML = ret; function diver(elem) { var n = elem.childNodes.length; for(var i=0; i=0) { i--; child.parentNode.removeChild(child); } else { var search = child.tagName.toLowerCase(); var found = false; var nn = Sys.Extended.UI.HTMLEditor.enabledWordTags.length; for(var j=0; j < nn; j++) { if(Sys.Extended.UI.HTMLEditor.enabledWordTags[j] == search) { found = true; break; } } diver(child); if(!found) { i += child.childNodes.length; while(child.firstChild) child.parentNode.insertBefore(child.firstChild,child); child.parentNode.removeChild(child); i--; } else { var s_background_color = child.style.backgroundColor; var s_color = child.style.color; child.style.cssText =""; child.removeAttribute("style"); if(child.getAttribute("width") && child.getAttribute("width").length > 0) child.style.width=child.getAttribute("width"); if(child.width && child.width.length > 0) child.style.width=child.width; child.width =""; try{child.removeAttribute("width");}catch(e){} if(child.getAttribute("height") && child.getAttribute("height").length > 0) child.style.height=child.getAttribute("height"); if(child.height && child.height.length > 0) child.style.height=child.height; child.height =""; try{child.removeAttribute("height");}catch(e){} if(search=="table") { child.style.borderLeftWidth = "1px"; child.style.borderLeftColor = "black"; child.style.borderLeftStyle = "solid"; child.style.borderTopWidth = "1px"; child.style.borderTopColor = "black"; child.style.borderTopStyle = "solid"; child.style.backgroundColor = s_background_color; child.style.color = s_color; } if(search=="td") { child.style.borderRightWidth = "1px"; child.style.borderRightColor = "black"; child.style.borderRightStyle = "solid"; child.style.borderBottomWidth = "1px"; child.style.borderBottomColor = "black"; child.style.borderBottomStyle = "solid"; child.style.backgroundColor = s_background_color; child.style.color = s_color; } if(search=="font" || search=="span") { child.style.backgroundColor = s_background_color; child.style.color = s_color; var attrs = child.attributes; var n =0; for (var m = 0; m < attrs.length; ++m) { var a = attrs.item(m); if (!a.specified) continue; n++; } if(n== 0 && child.style.cssText=="") { i += child.childNodes.length; while(child.firstChild) child.parentNode.insertBefore(child.firstChild,child); child.parentNode.removeChild(child); i--; } } } } } } } diver(div); ret = Sys.Extended.UI.HTMLEditor.Trim(div.innerHTML); delete div; ret = ret.replace(/<[\/]?(xml|del|ins)[^>]*?>/ig,"") // remove some tags (content should be remained) .replace(/<(p|div)[^>]*?>/ig,"") // remove P, DIV tags (content should be remained)
is added .replace(/<\/(p|div)[^>]*?>/ig,"
"); do { old_ret = ret; ret = ret.replace(/<\/b>/ig,"").replace(/<\/i>/ig,"").replace(/<\/u>/ig,"").replace(/<\/strong>/ig,"").replace(/<\/em>/ig,"").replace(/<\/sub>/ig,"").replace(/<\/sup>/ig,""); ret = ret.replace(/]*?><\/span>/ig,"").replace(/([^<]+?)<\/span>/ig,"$1"); ret = ret.replace(/]*?><\/font>/ig,"").replace(/([^<]+?)<\/font>/ig,"$1"); } while(ret != old_ret) ret = ret.replace(/’/g, "'") .replace(/‘/g, "'") .replace(/–/g, "-") .replace(/—/g, "-") .replace(/…/g, "...") .replace(/"/g, "\"") .replace(/“/g, "\"") .replace(/”/g, "\"") .replace(//g, "") .replace(/•/g, "") .replace(/[ \s]+/g," ").replace(/(( )+)/g," "); // remove extra spaces if(document.all) ret = ret.replace(/^[\x00-\x1F]* /,""); return ret; }; Sys.Extended.UI.HTMLEditor.spanJoiner = function(element,doc, sFrom, sTo, nobr) { var sIndex = 0; var sLength = element.childNodes.length; if(typeof sFrom != "undefined" && sFrom != null) sIndex = sFrom; if(typeof sTo != "undefined" && sTo != null) sLength = sTo; for(var i=sIndex; i < sLength && i < element.childNodes.length; i++) { var child = element.childNodes.item(i) if (child.parentNode != element) { continue; } switch (child.nodeType) { case 1: // Node.ELEMENT_NODE if(child.childNodes.length==0 && Sys.Extended.UI.HTMLEditor.isStyleTag(child.tagName) && child.tagName.toUpperCase() != "A" && !(child.className.length > 0 || (child.getAttribute("class") && child.getAttribute("class").length > 0)) && !Sys.Extended.UI.HTMLEditor.isTempElement(child)) { element.removeChild(child); i--; sLength--; continue; } if( child.tagName.toUpperCase()=="SPAN") { while(child.childNodes.length==1 && child.firstChild.nodeType==1) { if(child.firstChild.tagName.toUpperCase()=="SPAN" && !Sys.Extended.UI.HTMLEditor.isTempElement(child.firstChild)) { var attrs = Sys.Extended.UI.HTMLEditor.differAttr (child.firstChild,[]); var styles = Sys.Extended.UI.HTMLEditor.differStyle(child.firstChild); var oldSpan = child.firstChild; var chieldren = oldSpan.childNodes; while(oldSpan.firstChild != null) { child.insertBefore(oldSpan.firstChild,oldSpan); } for(var j=0; j < styles.length; j++) { if(styles[j][1]) { try { if(child.style[styles[j][0]]) { if(styles[j][0].toLowerCase().indexOf("color") >= 0) { child.style[styles[j][0]] = styles[j][1]; } else { try { var sv = child.style[styles[j][0]]; child.style[styles[j][0]] = child.style[styles[j][0]]+" "+styles[j][1]; if(sv == child.style[styles[j][0]]) { child.style[styles[j][0]] = styles[j][1]; } } catch(e) { child.style[styles[j][0]] = styles[j][1]; } } } else { child.style[styles[j][0]] = styles[j][1]; } } catch (ee) {} } } for(var j=0; j < attrs.length; j++) { if(attrs[j][1]) { child.setAttribute(attrs[j][0],attrs[j][1]); } } child.removeChild(oldSpan); continue; } else { if(child.firstChild.tagName.toUpperCase()=="SPAN" && Sys.Extended.UI.HTMLEditor.isTempElement(child.firstChild)) { var svv = child.firstChild; child.parentNode.insertBefore(child.firstChild,child); child.parentNode.removeChild(child); child = svv; } } break; } var tempArr = []; var nextChild = child.nextSibling; while(!Sys.Extended.UI.HTMLEditor.isTempElement(child) && nextChild && i+1 < sLength && (nextChild.nodeType == 3 || (nextChild.nodeType == 1 && (nextChild.tagName.toUpperCase()=="SPAN" || (nextChild.tagName.toUpperCase()=="BR") && typeof nobr == "undefined") && !Sys.Extended.UI.HTMLEditor.isTempElement(nextChild)))) { if(nextChild.nodeType == 3) { if((""+nextChild.data+"").length==0) { nextChild.parentNode.removeChild(nextChild); nextChild = child.nextSibling; sLength--; } else { break; } } else { if(nextChild.tagName.toUpperCase()=="BR") { tempArr.push(nextChild); nextChild = nextChild.nextSibling; } else { var attrs = Sys.Extended.UI.HTMLEditor.differAttr (child,[], nextChild); var styles = Sys.Extended.UI.HTMLEditor.differStyle(child, nextChild); if(attrs.length==0 && styles.length==0 && child.className == nextChild.className) { var n = tempArr.length; for(var j=0; j < n; j++) { child.appendChild(tempArr[j]); sLength--; } tempArr = []; while(nextChild.firstChild) child.appendChild(nextChild.firstChild); nextChild.parentNode.removeChild(nextChild); nextChild = child.nextSibling; sLength--; } else { break; } } } } if(!Sys.Extended.UI.HTMLEditor.isTempElement(child) && child.className.length == 0) { var attrs = Sys.Extended.UI.HTMLEditor.differAttr (child,[]); var styles = Sys.Extended.UI.HTMLEditor.differStyle(child ); if(attrs.length==0 && styles.length==0) { i--; sLength--; while(child.firstChild) { child.parentNode.insertBefore(child.firstChild,child); sLength++; } child.parentNode.removeChild(child); continue; } } } if(child.parentNode != null) { if(child.childNodes.length==0 && Sys.Extended.UI.HTMLEditor.isStyleTag(child.tagName) && child.tagName.toUpperCase() != "A" && !(child.className.length > 0 || (child.getAttribute("class") && child.getAttribute("class").length > 0)) && !Sys.Extended.UI.HTMLEditor.isTempElement(child)) { element.removeChild(child); i--; sLength--; continue; } else { Sys.Extended.UI.HTMLEditor.spanJoiner(child,doc); } } break; } } }; Sys.Extended.UI.HTMLEditor._styleTags = [ "strong", "em", "u", "strike", "s", "span", "font", "b", "sub", "sup", "a", "i" ]; Sys.Extended.UI.HTMLEditor.isStyleTag = function(tag) { if(!tag) return false; for(var i=0; i< Sys.Extended.UI.HTMLEditor._styleTags.length; i++) { if(Sys.Extended.UI.HTMLEditor._styleTags[i].toLowerCase()==tag.toLowerCase()) return true; } return false; }; Sys.Extended.UI.HTMLEditor.smartClassName = "MSIEparagraph"; Sys.Extended.UI.HTMLEditor.noContextMenuAttribute= "obout-no-contextmenu"; Sys.Extended.UI.HTMLEditor.isTempElement = function(el) { if(el.id && el.id.length > 0 && el.id.indexOf(Sys.Extended.UI.HTMLEditor.smartClassName) >= 0) return true; return false; }; Sys.Extended.UI.HTMLEditor.differAttr = function(element,pr, comp) { var result = []; var parent = element.parentNode; if(typeof comp != "undefined") parent = comp; if(!parent || !parent.tagName || !Sys.Extended.UI.HTMLEditor.isStyleTag(parent.tagName)) parent = null; if(element.attributes) for (var i=0; i < element.attributes.length; i++) { var attr = element.attributes[i]; var brk=false; for(var j=0; j < pr.length; j++) { if(attr.name.toUpperCase() == pr[j].toUpperCase()) { brk=true; break; } } if(brk) continue; if(attr.name.toUpperCase() == "STYLE") continue; if(attr.name.toUpperCase().substr(0,4) == "_MOZ") continue; if(attr.specified) if(parent && parent.attributes && parent.attributes[attr.name]) { var pattr= parent.attributes[attr.name]; if(pattr) { if(attr.name != pattr.name || attr.value != pattr.value) { result.push([attr.name, attr.value]); } } } else { if(attr.name.toUpperCase() == "CLASS" && attr.value =="") continue; result.push([attr.name, attr.value]); } } return result; }; Sys.Extended.UI.HTMLEditor.differStyle = function(element, comp) { var result = []; var parent = element.parentNode; if(typeof comp != "undefined") parent = comp; if(!parent || !parent.tagName || !Sys.Extended.UI.HTMLEditor.isStyleTag(parent.tagName)) parent = null; function _putStyle(i,_style) { _style=""+_style; if(i.toLowerCase()=="textdecoration") { var _arr = _style.split(" "); for(var j=0; j<_arr.length; j++) { result.push([i, Sys.Extended.UI.HTMLEditor.Trim(_arr[j])]); } } else { result.push([i, _style]); } } for (var i in element.style) { if(i && typeof i == "string" && i != "accelerator") { var ii = i; if(!isNaN(parseInt(i))) { if(!Sys.Extended.UI.HTMLEditor.isSafari) { continue; } ii = element.style[i]; } var style = element.style[ii]; if(style && typeof style == "string" && style != "accelerator") { if(parent && parent.style) { var pstyle= parent.style [ii]; if(ii.toLowerCase() != "csstext" && ii.toLowerCase() != "length") if(style != pstyle) { _putStyle(ii, style); } } else { if(ii.toLowerCase() != "csstext" && ii.toLowerCase() != "length") { _putStyle(ii, style); } } } } } if(typeof comp != "undefined") for (var i in parent.style) { if(i && typeof i == "string" && i != "accelerator") { var ii = i; if(!isNaN(parseInt(i))) { if(!Sys.Extended.UI.HTMLEditor.isSafari) { continue; } ii = element.style[i]; } var style = parent.style[ii]; if(style && typeof style == "string" && style != "accelerator") { var pstyle= element.style [ii]; if(i.toLowerCase() != "csstext" && ii.toLowerCase() != "length") if(style != pstyle) { _putStyle(ii, style); } } } } return result; }; Sys.Extended.UI.HTMLEditor.brXHTML = function(str) { return str.replace(/
/ig, "
"); }; Sys.Extended.UI.HTMLEditor._needsClosingTag = function(el) { var closingTags = " script style div span a del strong em u strike font b sub sup p iframe li ul ol placeholder textarea td tr "; return (closingTags.indexOf(" " + el.tagName.toLowerCase() + " ") != -1); }; Sys.Extended.UI.HTMLEditor._encodeText_ = function(str) { return str.replace(/&/ig, "&").replace(//ig, ">").replace(/\"/ig, """).replace(/\xA0/ig, " "); }; Sys.Extended.UI.HTMLEditor._noNeedsClosingTag = function(el) { var closingTags = " hr br "; return (closingTags.indexOf(" " + el.tagName.toLowerCase() + " ") != -1); }; Sys.Extended.UI.HTMLEditor.canBeInsideP = function(el,prize) { if(el && el.style && el.style.display && el.style.display.toLowerCase()=="inline") return true; var name = el.tagName.toUpperCase(); if(name.length==2) { if(name.substr(0,1)=="H" && parseInt(name.substr(1,1)) > 0) { return false; } } switch(name) { case "TBODY" : case "TR" : case "TD" : if(typeof prize != "undefined") { var par = el.parentNode; while(par && par.tagName && par.tagName.toUpperCase() != "TABLE") par = par.parentNode; if(par.tagName.toUpperCase() == "TABLE" && par.style && par.style.display && par.style.display.toLowerCase() == "inline") { return true; } } case "P" : case "PRE" : case "TABLE" : case "OL" : case "UL" : case "LI" : case "HR" : case "DIV" : case "BLOCKQUOTE" : case "FORM" : case "FIELDSET" : case "LEGEND" : return false; default: return true; } }; Sys.Extended.UI.HTMLEditor.convertAlign = function(aval) { var value; var n; try { n = parseInt(aval)-1;} catch(e){return aval;} switch(n) { case 1: value = "left"; break; case 2: value = "right"; break; case 3: value = "texttop"; break; case 4: value = "absmiddle"; break; case 5: value = "baseline"; break; case 6: value = "absbottom"; break; case 7: value = "bottom"; break; case 8: value = "middle"; break; case 9: value = "top"; break; default: value = aval.replace(/\"/g,"""); } return value; }; Sys.Extended.UI.HTMLEditor.getHTML = function(root, outputRoot, must) { try { if(typeof must == "undefined") { if(!outputRoot && root.nodeType==1) { return root.innerHTML; } else { if(outputRoot && root.nodeType==1 && Sys.Extended.UI.HTMLEditor.isIE) { return root.outerHTML; } } } } catch(e){} var html = new Sys.Extended.UI.HTMLEditor.jsDocument(true); Sys.Extended.UI.HTMLEditor._getHTML_(html, root, outputRoot); return html.toString(); }; Sys.Extended.UI.HTMLEditor._getHTML_ = function(html, root, outputRoot, must) { switch (root.nodeType) { case 1: // Node.ELEMENT_NODE case 11: // Node.DOCUMENT_FRAGMENT_NODE if(root.tagName && root.tagName.indexOf("/") >= 0) { if(Sys.Extended.UI.HTMLEditor.isIE) { var tag = root.tagName.toLowerCase().substr(root.tagName.indexOf("/")+1); var prev = root.previousSibling; if(tag == "embed") return; while(prev != null) { if(prev.nodeType == root.nodeType && prev.tagName && prev.tagName.toLowerCase() == tag) { html.append(""); return; } prev = prev.previousSibling; } } return; } var closed; var noSlash; var i; if (outputRoot && root.tagName.length >0) { var tag = root.tagName.toLowerCase(); closed = (!(root.hasChildNodes() || Sys.Extended.UI.HTMLEditor._needsClosingTag(root))); noSlash= true; var scope = ""; if(Sys.Extended.UI.HTMLEditor.isIE && root.scopeName && typeof root.scopeName != "undefined") { scope = (root.scopeName.toUpperCase()=="HTML")?"":(root.scopeName+":"); } if(Sys.Extended.UI.HTMLEditor.isIE && (closed || tag == "placeholder") && !Sys.Extended.UI.HTMLEditor._noNeedsClosingTag(root) && tag !="embed") { var next = root.nextSibling; while(next != null) { if(next.nodeType == root.nodeType && next.tagName) { var nextTagName = next.tagName; if(nextTagName.indexOf("/") >= 0) if(nextTagName.toLowerCase().substr(nextTagName.indexOf("/")+1) == tag) { closed = false; noSlash= false; break; } } next = next.nextSibling; } } if(!Sys.Extended.UI.HTMLEditor.canBeInsideP(root)) { html.append("\n"); } html.append("<"+((!closed && !noSlash)?"teo"+Sys.Extended.UI.HTMLEditor.smartClassName+":":scope)+ tag); if(Sys.Extended.UI.HTMLEditor.isIE && root.name && root.name.length > 0) { html.append(" name=\"" + root.name.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.value && root.value.length > 0 && tag != "textarea") { html.append(" value=\"" + root.value.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.className && root.className.length > 0) { html.append(" class=\"" + root.className.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.align && root.align.length > 0) { html.append(" align=\"" + root.align.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.color && root.color.length > 0) { html.append(" color=\"" + root.color.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.size && root.size.length > 0 && root.size != "+0") { html.append(" size=\"" + root.size.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.shape && root.shape.length > 0) { html.write(" shape" + '="' + root.shape.replace(/\"/g,""") + '"'); } if(Sys.Extended.UI.HTMLEditor.isIE && root.coords && root.coords.length > 0) { html.write(" coords" + '="' + root.coords.replace(/\"/g,""") + '"'); } var attrs = root.attributes; var cssForSafari = null; for (i = 0; i < attrs.length; ++i) { var a = attrs.item(i); if (!a.specified) continue; var name = a.name.toLowerCase(); if (name.substr(0, 4) == "_moz") { continue; } if (name == "teoalign") { continue; } var value; if (name != 'style') { if(name=='width') { value= root.width; if(Sys.Extended.UI.HTMLEditor.isIE && value == 0) { var n_value = 0; root.outerHTML.replace(new RegExp("^(?:<[^>]*?width=)([\\d]+)","ig"),function(p0,p1){n_value = p1;}); if(value != n_value) value = n_value; } } else if(name=='height') { value= root.height; if(Sys.Extended.UI.HTMLEditor.isIE && value == 0) { var n_value = 0; root.outerHTML.replace(new RegExp("^(?:<[^>]*?height=)([\\d]+)","ig"),function(p0,p1){n_value = p1;}); if(value != n_value) value = n_value; } } else if(Sys.Extended.UI.HTMLEditor.isIE && name=='name' && root.name && root.name.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='value' && root.value && root.value.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='align' && root.align && root.align.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='class' && root.className && root.className.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='color' && root.color && root.color.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='size' && root.size && root.size.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='shape' && root.shape && root.shape.length > 0 ) continue; else if(Sys.Extended.UI.HTMLEditor.isIE && name=='coords' && root.coords && root.coords.length > 0 ) continue; else { if(tag=="embed" && name=="align" && (Sys.Extended.UI.HTMLEditor.isIE)) { value = Sys.Extended.UI.HTMLEditor.convertAlign(a.value); } else { value = a.value; if(Sys.Extended.UI.HTMLEditor.isSafari && name == "class") { if(/apple-style/ig.test(value)) { continue; } } if(name == "src" || name == "href") { if (Sys.Extended.UI.HTMLEditor.isIE) { value = Sys.Extended.UI.HTMLEditor.getRealAttributeIE(root, name, value); } value = value.replace(/(\(S\([A-Za-z0-9_]+\)\)\/)/,""); } value = value.replace(/\"/g,"""); } } } else { if(Sys.Extended.UI.HTMLEditor.isSafari) { cssForSafari = a.value; } continue; } var qchar = "\""; if((""+value+"").indexOf("\"") >= 0) qchar="'"; if(name != null) html.append(" " + name + '=' + qchar + value + qchar); } if(root.style.cssText.length > 0 || cssForSafari != null) { var name = "style"; var re1 = /(url\((?:[^\)]*)\))/ig; var urls = []; function f2($0,$1) { urls.push($1); } var value = ((cssForSafari !=null)?cssForSafari:root.style.cssText).toLowerCase(); value.replace(re1, f2); var times = 0; function f3() { var temp = urls[times]; times++; return temp; } value = Sys.Extended.UI.HTMLEditor.tryReplaceRgb(value.replace(re1, f3)).replace(/(font-weight\s*:\s*)(700)/ig, "$1bold") .replace(/([\s]*-moz-[^;]*[;][\s]*)/ig, "").replace(/(-moz-.*)$/i, "") .replace(/(background-position: 0% 0%[;]*[\s]*)/ig, ""); if(Sys.Extended.UI.HTMLEditor.isSafari) { function repSaf($0,$1,$2,$3) { return $1+$2.replace(/(,)/g,"")+$3; } value = value.replace(/(text-decoration:)([^;$]+)([;$])/ig, repSaf); } if(Sys.Extended.UI.HTMLEditor.isSafari || Sys.Extended.UI.HTMLEditor.isOpera) { function repSafOp($0,$1,$2,$3) { return $1+$2.replace(/(['"])/g,"")+$3; } value = value.replace(/(font-family:)([^;]+)([;]*)/ig, repSafOp); } if(value.length > 0) { var qchar = "\""; if((""+value+"").indexOf("\"") >= 0) qchar="'"; html.append(" " + name + '=' + qchar + value + qchar); } } html.append(closed ? " />" : ">"); if(tag=="br") html.append("\n"); } if(root.tagName && root.tagName.toUpperCase()=="SCRIPT") html.append(root.text); if(root.tagName && root.tagName.toUpperCase()=="STYLE") { html.append(root.innerHTML); } else { for (i = root.firstChild; i; i = i.nextSibling) { Sys.Extended.UI.HTMLEditor._getHTML_(html,i, true) } } if (outputRoot && root.tagName.length >0 && !closed && noSlash) { html.append(""); } break; case 3: // Node.TEXT_NODE html.append(Sys.Extended.UI.HTMLEditor._encodeText_(""+root.data+"")); break; case 8: // Node.COMMENT_NODE if(root.length > 0) { html.append(""); } else { // IE bug tricking (negative lengths happen there) html.append(""); } break; } }; Sys.Extended.UI.HTMLEditor.RemoveContextMenu = function() { var editor = this; var hhh=editor._contextElement.parentNode.removeChild(editor._contextElement); if (hhh) delete hhh; editor._contextElement=null; editor._contextTable=null; if (editor.__saved_range__){ editor.__saved_range__.select(); editor.__saved_range__=null; } }; Sys.Extended.UI.HTMLEditor.contentEditable = function(el, prize) { while(el != null) { try { var mean = null; if(el.contentEditable != null && typeof el.contentEditable != "undefined" && !(Sys.Extended.UI.HTMLEditor.isSafari || Sys.Extended.UI.HTMLEditor.isOpera)) { if(!el.contentEditable || el.contentEditable=="false") { mean = false; } else { mean = true; } } else { var value = el.getAttribute("contenteditable"); if(typeof value == "boolean") { mean = value; } else { if(typeof value == "string" && value.toLowerCase()=="false") { mean = false; } } } if(mean != null && typeof mean == "boolean") { if(!mean) { return el; } } } catch(ex) {} if(typeof prize != "undefined" && prize) { return null; } if(el.tagName != null && typeof el.tagName != "undefined" && (el.tagName.toUpperCase()=="BODY" || el.tagName.toUpperCase()=="HTML")) { break; } el = el.parentNode; } return null; }; Sys.Extended.UI.HTMLEditor.getSelParent = function (editor) { var sel = editor._getSelection(); var range = editor._createRange(sel); var parent = null; if(Sys.Extended.UI.HTMLEditor.isIE) { if(sel.type.toLowerCase()=="control") parent =range.item(0); else parent= editor._getParent(range); } else { parent= editor._getParent(range); if(parent.nodeType != 3 && range.startContainer==range.endContainer) { var p=parent; parent = parent.childNodes.item(range.startOffset); if(parent==null) parent=p; } } return parent; }; Sys.Extended.UI.HTMLEditor.__getIndex = function(el) { var ind =0; if(el.parentNode) { for(;ind 0) { return false; } } switch(name) { case "BR" : case "TBODY" : case "TR" : case "TD" : case "P" : case "PRE" : case "TABLE" : case "OL" : case "UL" : case "LI" : case "HR" : case "DIV" : case "BLOCKQUOTE" : case "FORM" : case "FIELDSET" : case "LEGEND" : return false; default: return true; } }; Sys.Extended.UI.HTMLEditor.capLock = function(e) { var kc = e.charCode; var sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false); if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk)) return true; else return false; }; Sys.Extended.UI.HTMLEditor.operateAnchors = function(editor, _doc, _prize) { var aList = _doc.getElementsByTagName("A"); var ret = false; for(var i=0; i < aList.length; i++) { var a = aList[i]; if( a.name && a.name.length > 0) { var imgToDelete = []; for(var j=0; j < a.childNodes.length; j++) { var node = a.childNodes.item(j); if(node.nodeType==1 && node.tagName && node.tagName.toUpperCase()=="IMG" && node.src==editor._editPanel.get_imagePath_anchor()) { imgToDelete.push(node); ret = true; } } while (imgToDelete.length > 0) { a.removeChild(imgToDelete.pop()); } if(!_prize) { var img = _doc.createElement("IMG"); img.title = a.name; img.src = editor._editPanel.get_imagePath_anchor(); img.setAttribute(editor.noContextMenuAttributeName(),"yes"); a.appendChild(img); } } } return ret; }; Sys.Extended.UI.HTMLEditor.operatePlaceHolders = function(editor, _doc, _prize) { var ret = false; if(_prize) { var tempCollection = _doc.getElementsByTagName("IMG"); var aList =[]; for(var i=0; i 0 && dum.toLowerCase()=="placeholder") { var ph = _doc.createElement("PLACEHOLDER"); var title = a.title; if(title==null || typeof title=="undefined") { title = a.getAttribute("title"); } ph.name = title; ph.setAttribute("name",title); a.parentNode.insertBefore(ph,a); a.parentNode.removeChild (a); ret = true; } } } else { var tempCollection = _doc.getElementsByTagName("PLACEHOLDER"); var aList =[]; for(var i=0; i 0) { nd = false; } } catch(ex) {} if(nd) { var name = a.name; if(name==null || typeof name=="undefined") { name = a.getAttribute("name"); } var img = _doc.createElement("IMG"); img.title = name; img.src = editor._editPanel.get_imagePath_placeHolder(); img.setAttribute("dummytag","placeholder"); img.setAttribute("title",name); a.parentNode.insertBefore(img,a); a.parentNode.removeChild (a); } } } return ret; }; Sys.Extended.UI.HTMLEditor.inspectForShadows = function(el) { var aList = el.getElementsByTagName("IMG"); for(var i=0; i < aList.length; i++) { if(aList[i].getAttribute(Sys.Extended.UI.HTMLEditor.attachedIdAttribute) && aList[i].getAttribute(Sys.Extended.UI.HTMLEditor.attachedIdAttribute).length > 0) { try { if(Sys.Extended.UI.HTMLEditor.isIE) { $removeHandler(aList[i],"dragstart", Sys.Extended.UI.HTMLEditor.stopDrag); } else { $removeHandler(aList[i],"draggesture", Sys.Extended.UI.HTMLEditor.stopDrag); } } catch(e) {} if(Sys.Extended.UI.HTMLEditor.isIE) { $addHandler(aList[i],"dragstart", Sys.Extended.UI.HTMLEditor.stopDrag); } else { $addHandler(aList[i],"draggesture", Sys.Extended.UI.HTMLEditor.stopDrag); } } } }; Sys.Extended.UI.HTMLEditor.attachedIdAttribute= "obout-attached-id"; Sys.Extended.UI.HTMLEditor.stopDrag = function(ev) { if(ev) ev.stopPropagation();ev.preventDefault(); return false; }; Sys.Extended.UI.HTMLEditor.replacingRules = [ [ "strong" ,"font-weight" , "bold" ], [ "b" ,"font-weight" , "bold" ], [ "strong" ,"font-weight" , "700" ], [ "em" ,"font-style" , "italic" ], [ "i" ,"font-style" , "italic" ], [ "u" ,"text-decoration" , "underline" ], [ "strike" ,"text-decoration" , "line-through" ] ]; Sys.Extended.UI.HTMLEditor.replaceOldTags = function(root,editor) { var innerHTML = root.innerHTML; var need = false; for(var j=0; j < Sys.Extended.UI.HTMLEditor.replacingRules.length; j++) { var reg = new RegExp("<"+Sys.Extended.UI.HTMLEditor.replacingRules[j][0]+"[\s>]", "ig"); if(reg.test(innerHTML)) { need = true; break; } } if(!need) { if(!(/]/ig.test(innerHTML))) { return; } } for(var i=0; i 0) { font.appendChild(span); child = span; } else { while(span.firstChild) { font.appendChild(span.firstChild); } root.removeChild(span); child = font; } } else { child = span; } } } Sys.Extended.UI.HTMLEditor.replaceOldTags(child,editor); } } }; Sys.Extended.UI.HTMLEditor.getStyle = function(oElm, strCssRule) { var strValue = ""; if(oElm.nodeType==1) { if(oElm.ownerDocument && oElm.ownerDocument.defaultView && oElm.ownerDocument.defaultView.getComputedStyle) { strValue = oElm.ownerDocument.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule); } else if(oElm.currentStyle) { try { strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){return p1.toUpperCase();}); strValue = oElm.currentStyle[strCssRule]; } catch(ex) { strValue = oElm.style[strCssRule]; } } else { strValue = oElm.style[strCssRule]; } } return strValue; }; Sys.Extended.UI.HTMLEditor._Marker = function(editor,rng,sel) { if(Sys.Extended.UI.HTMLEditor.isIE) { this._nArr = Sys.Extended.UI.HTMLEditor.getNames(editor._doc.body); this._save = editor._doc.body.innerHTML; this._tree = null; if(sel.type.toLowerCase()=="control") { try { var el = rng.item(0); this._tree =[]; while(el && (el.nodeType==3 || !el.tagName || el.tagName.toUpperCase() != "BODY")) { var n=0; while(el.previousSibling) { n++; el = el.previousSibling; } this._tree.push(n); el = el.parentNode; } } catch(e){} } else { this._offsetLeft=rng.offsetLeft; this._offsetTop =rng.offsetTop; } } else { if(Sys.Extended.UI.HTMLEditor.isOpera) { this._save = Sys.Extended.UI.HTMLEditor.Trim(editor._doc.body.innerHTML); } else { this._save = editor._doc.body.cloneNode(true); } this._tree =[]; this._offset= 0; try { var el =rng.startContainer; this._offset=rng.startOffset; if(el && el.nodeType==1 && el.tagName.toUpperCase()=="HTML") { el = editor._doc.body; setTimeout(function(){ try { sel = editor._getSelection(); rng = editor._createRange(); editor._removeAllRanges(sel); rng.setStart(el,0); rng.setEnd (el,0); editor._selectRange(sel,rng); } catch(e) {} },0); } while(el && el.nodeType && (el.nodeType==3 || !el.tagName || el.tagName.toUpperCase() != "BODY")) { var n=0; while(el.previousSibling) { n++; if(Sys.Extended.UI.HTMLEditor.isOpera) { if(el.nodeType == 3 && el.previousSibling != null && el.previousSibling.nodeType == 3) { n--; } } el = el.previousSibling; } this._tree.push(n); el = el.parentNode; } } catch(e) {} } }; Sys.Extended.UI.HTMLEditor.__stackMaxSize = 30; Sys.Extended.UI.HTMLEditor.getNames = function(el) { var aList = el.all; var mArr = []; var nArr =[] for(var i=0; i < aList.length; i++) { var a = aList[i]; if(a.name && a.name.length > 0) { var tag = a.tagName; var coll= el.getElementsByTagName(tag); var n = 0; for(var j=0; j < coll.length; j++) { if(coll[j] == a) { n = j; break; } } nArr[tag] = n; mArr.push([tag,nArr[tag],a.name]); } } return mArr; }; Sys.Extended.UI.HTMLEditor.setNames = function(el,mArr) { for(var i=0; i < mArr.length; i++) { if(el.getElementsByTagName(mArr[i][0]).length > mArr[i][1]) { el.getElementsByTagName(mArr[i][0])[mArr[i][1]].name = mArr[i][2]; } } }; Sys.Extended.UI.HTMLEditor._lookChild = function(root,seek) { for(var i=0; i= 0 ) { return i; } } } return -1; }; Sys.Extended.UI.HTMLEditor.getHrefsText = function(txt) { var result =[] function regRepl(p0,p1,p2,p3,p4,p5,p6,p7) { var tag = p1.replace(/^<([^\s>]+)/,"$1"); var insert =true; var i =0; for(; i < result.length; i++) { if(result[i][0] == tag) { insert = false; break; } } if(insert) { result[i] =[tag]; } result[i].push(p5); }; var reg = new RegExp("(<[^\\s><]+)([^><]*?)(href=)(\"|')([^\\4]*?)(\\4)((?:[^><]*?)>)","ig"); txt.replace(reg,regRepl); return result; }; Sys.Extended.UI.HTMLEditor.setHrefsText = function(el, mArr) { for (var j = 0; j < mArr.length; j++) { var aList = el.getElementsByTagName(mArr[j][0]); var k = 1; for (var i = 0; i < aList.length; i++) { if (!aList[i].href) { continue; } if (mArr[j][k] && mArr[j][k].length > 0) { var trickIE; if (Sys.Extended.UI.HTMLEditor.isIE) { trickIE = aList[i].innerHTML; } aList[i].href = mArr[j][k].replace(/&/ig, "&"); if (Sys.Extended.UI.HTMLEditor.isIE) { aList[i].innerHTML = trickIE; } } k++; } } }; Sys.Extended.UI.HTMLEditor.getImagesText = function(txt) { var mArr = []; function regRepl(p0,p1,p2,p3,p4,p5) { mArr.push(p3); return p0; } txt.replace(/()/ig,regRepl); return mArr; }; Sys.Extended.UI.HTMLEditor.setImagesText = function(el,mArr) { var aList = el.getElementsByTagName("IMG"); var k=0; for(var i=0; i < aList.length; i++) { if(!aList[i].src) { continue; } if(mArr[k] && mArr[k].length > 0) { aList[i].src = mArr[k].replace(/&/ig,"&"); } k++; } }; Sys.Extended.UI.HTMLEditor.canHaveChildren = function(elem) { if(Sys.Extended.UI.HTMLEditor.isIE) { return elem.canHaveChildren; } else { return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(elem.tagName.toLowerCase()); } }; Sys.Extended.UI.HTMLEditor._setCursor = function(el1,editor) { var el = el1; if(Sys.Extended.UI.HTMLEditor.isIE) { var sel = editor._getSelection(); var range=editor._createRange(sel); if(sel.type.toLowerCase() == "control") { range.remove(0); sel.empty(); range = editor._createRange(); } var isText = (el.nodeType==3); var span; if(isText) { span = editor._doc.createElement("SPAN"); span.innerHTML = " "; el.parentNode.insertBefore(span,el); el = span; } var location = $common.getLocation(el); var _left = location.x, _top = location.y; if(isText) { span.parentNode.removeChild(span); } try { range.moveToPoint(_left,_top); } catch(e) {} range.select(); } else { var sel = editor._getSelection(); var range=editor._createRange(); range.setStart(el, 0); range.setEnd(el, 0); editor._removeAllRanges(sel); editor._selectRange(sel,range); editor.focusEditor(); } }; Sys.Extended.UI.HTMLEditor.myClone = function(el,doc,prize) { var ela; if(Sys.Extended.UI.HTMLEditor.isIE && el.tagName && (el.tagName.toUpperCase()=="EMBED" || el.tagName.toUpperCase()=="OBJECT")) { var div = doc.createElement("DIV"); try { div.innerHTML = el.outerHTML; ela = div.firstChild; } catch(e) { ela = el; } delete div; } else { ela = el.cloneNode(prize); } return ela; }; Sys.Extended.UI.HTMLEditor.unStyle = function(el) { var _prn = (el.parentNode != null && typeof el.parentNode != "undefined")?el.parentNode:null; if(_prn) { var _fnd = null; while ( _prn && _prn.tagName && _prn.tagName.toUpperCase() != "BODY" && Sys.Extended.UI.HTMLEditor.isStyleTag(_prn.tagName) && (_prn.tagName.toUpperCase() != "A")) { _fnd = _prn; _prn = _prn.parentNode; } if(_fnd) { function diver(add,el, rpr, before, prize) { var par=rpr.cloneNode(false); if(add) { if(add.push && typeof add.push == "function") { for(var iii=0; iii < add.length; iii++) { par.appendChild(add[iii]); } } else { par.appendChild(add); } } if(prize) { par.appendChild(el); } else { while(el) { var elSibling=before?el.previousSibling:el.nextSibling; if(el.nodeType==1 || (el.nodeType==3 && Sys.Extended.UI.HTMLEditor.Trim(""+el.data+"").length>0)) { if(el.nodeType==1) { if(el.tagName && Sys.Extended.UI.HTMLEditor.isStyleTag(el.tagName) && el.childNodes.length==0 && !Sys.Extended.UI.HTMLEditor.isTempElement(el)) { el=null; } } if(el) { if(par.childNodes.length == 0 || !before) { par.appendChild(el); } else { par.insertBefore(el,par.firstChild); } } } el=elSibling; } } if(par.childNodes.length==0) { delete par; par=null; } else if(par.childNodes.length==1 && par.firstChild.nodeType==3 && (""+par.firstChild.data+"").length==0) { delete par; par=null; } else { if(!prize && par.tagName && Sys.Extended.UI.HTMLEditor.isStyleTag(par.tagName) && (par.tagName.toUpperCase() != "A") && !Sys.Extended.UI.HTMLEditor.isTempElement(par)) { var elNumber = par.childNodes.length; for(var cnt=0; cnt< par.childNodes.length; cnt++) { var inn = par.childNodes.item(cnt); if(inn.nodeType==1 && inn.tagName && !Sys.Extended.UI.HTMLEditor.isStyleTag(inn.tagName) && (inn.tagName.toUpperCase()=="BR" || inn.tagName.toUpperCase()=="TABLE" || Sys.Extended.UI.HTMLEditor.isTempElement(inn))) { elNumber--; } } if(elNumber == 0) { var parr = []; while(par.firstChild) { var inn = par.removeChild(par.firstChild); parr.push(inn); } par = parr; } } } if(rpr==_fnd) { return par; } else { if(!prize) { return diver(par,before?rpr.previousSibling:rpr.nextSibling,rpr.parentNode,before,prize); } else { return diver(null,par,rpr.parentNode,before,prize); } } }; _prn = el.parentNode; if( el.previousSibling == null && el.nextSibling == null && _prn && _prn.tagName && _prn.tagName.toUpperCase() != "BODY" && Sys.Extended.UI.HTMLEditor.isStyleTag(_prn.tagName) && Sys.Extended.UI.HTMLEditor.differAttr(_prn,["class","color","face","size"]).length > 0) { el = _prn; } var p1 = diver(null,el.previousSibling,el.parentNode,true , false); var p2 = diver(null,el.nextSibling ,el.parentNode,false, false); var par = _fnd.parentNode; if(p1) { if(p1.push && typeof p1.push == "function") { for(var iii=0; iii < p1.length; iii++) { par.insertBefore(p1[iii],_fnd); } } else { par.insertBefore(p1,_fnd); } } if(el.nodeType==1 && el.tagName && (el.tagName.toUpperCase()=="BR" || el.tagName.toUpperCase()=="TABLE" || Sys.Extended.UI.HTMLEditor.isTempElement(el))) { par.insertBefore(el,_fnd); } else { var p3 = diver(null,el,el.parentNode,false, true); par.insertBefore(p3,_fnd); } if(p2) { if(p2.push && typeof p2.push == "function") { for(var iii=0; iii < p2.length; iii++) { par.insertBefore(p2[iii],_fnd); } } else { par.insertBefore(p2,_fnd); } } par.removeChild (_fnd); } } }; Sys.Extended.UI.HTMLEditor.isTempElement = function(el) { if(el.id && el.id.length > 0 && el.id.indexOf(Sys.Extended.UI.HTMLEditor.smartClassName) >= 0) { return true; } return false; }; Sys.Extended.UI.HTMLEditor._moveTagsUp = function(lBound,rBound) { function _dive(next) { if(!Sys.Extended.UI.HTMLEditor.isInlineElement(next) || next.nodeType == 3) { Sys.Extended.UI.HTMLEditor.unStyle(next); } else if(next.tagName && Sys.Extended.UI.HTMLEditor.isStyleTag(next.tagName) && (next.tagName.toUpperCase() != "A") && !Sys.Extended.UI.HTMLEditor.isTempElement(next)) { var nnn = next.firstChild; while(nnn != null) { var nnnNext = nnn.nextSibling; _dive(nnn); nnn = nnnNext; } } } var next = lBound; while(next != null && next != rBound) { var nextSibling = next.nextSibling; _dive(next); next = nextSibling; } }; Sys.Extended.UI.HTMLEditor._commonTotalParent = function(first,last) { var ret = null; var par = first.parentNode; var fst = first; while (par) { if(par.tagName && !Sys.Extended.UI.HTMLEditor.isStyleTag(par.tagName)) { var indexLast = Sys.Extended.UI.HTMLEditor._lookChild(par,last); if(indexLast >=0 ) { var indexFirst = 0; for(var i=0; i < par.childNodes.length; i++) { if(par.childNodes.item(i) == fst) { indexFirst = i; break; } } return {parent: par, indexFirst: indexFirst, indexLast: indexLast}; } } fst = par; par = par.parentNode; } return ret; }; Sys.Extended.UI.HTMLEditor._commonParent = function(first,last) { var ret = null; var par = first.parentNode; var fst = first; while (par && par.tagName.toUpperCase() != "BODY" && Sys.Extended.UI.HTMLEditor.isStyleTag(par.tagName)) { var indexLast = Sys.Extended.UI.HTMLEditor._lookChild(par,last); if(indexLast >=0 ) { var indexFirst = 0; for(var i=0; i < par.childNodes.length; i++) { if(par.childNodes.item(i) == fst) { indexFirst = i; break; } } return {parent: par, indexFirst: indexFirst, indexLast: indexLast}; } fst = par; par = par.parentNode; } return ret; }; Sys.Extended.UI.HTMLEditor.positionInParagraph = function(marker,el,left,par,wordBound) { while(true){ var result = Sys.Extended.UI.HTMLEditor.positionInParagraphLevel(marker,el,left,wordBound); if(result != null) { return result; } if(par.tagName && Sys.Extended.UI.HTMLEditor.isStyleTag(par.tagName) && (par.tagName.toUpperCase() != "A") && !Sys.Extended.UI.HTMLEditor.isTempElement(par)) { el = left?par.previousSibling:par.nextSibling; par = par.parentNode; } else { if(!left || par.firstChild == null) { par.appendChild(marker); } else { par.insertBefore(marker,par.firstChild); } return marker; } } }; Sys.Extended.UI.HTMLEditor.positionInParagraphLevel = function(marker,el,left,wordBound) { while(el) { var elSibling = left?el.previousSibling:el.nextSibling; if(!Sys.Extended.UI.HTMLEditor.isInlineElement(el)) { var par = el.parentNode; if(!left) { par.insertBefore(marker,el); } else{ if(el.nextSibling) { par.insertBefore(marker,el.nextSibling); } else { par.appendChild (marker); } } return marker; } else if(typeof wordBound == "function" && el.nodeType==3) { var j; var str = ""+el.data+""; if(left) { for(j=str.length-1; j >= 0; j--) { if(wordBound(str.substr(j,1))) { break; } } } else { for(j=0; j < str.length; j++) { if(wordBound(str.substr(j,1))) { break; } } } if(j >= 0 && j < str.length) { var par = el.parentNode; var newNode; if((j > 0 || (left && j==0)) && (j < str.length-1 || (!left && j==str.length-1))) { if(left) { newNode = el.splitText(j+1); } else { newNode = el.splitText(j); } par.insertBefore(marker,newNode); } else { if(!left) { par.insertBefore(marker,el); } else { if(el.nextSibling) { par.insertBefore(marker,el.nextSibling); } else { par.appendChild (marker); } } } return marker; } } el = left?el.lastChild:el.firstChild; if(el) { var result = Sys.Extended.UI.HTMLEditor.positionInParagraphLevel(marker,el,left,wordBound); if(result != null) { return result; } } el=elSibling; } return null; }; Sys.Extended.UI.HTMLEditor._addEvent = function(el, evname, func){ if(el.attachEvent) el.attachEvent("on" + evname, func); else if(el.addEventListener) el.addEventListener(evname, func, true); }; Sys.Extended.UI.HTMLEditor._addEvents = function(el, evs, func) { for(var i=0; i < evs.length; i++) Sys.Extended.UI.HTMLEditor._addEvent(el, evs[i], func); }; Sys.Extended.UI.HTMLEditor._removeEvent = function(el, evname, func) { if(el.detachEvent) el.detachEvent("on" + evname, func); else if(el.removeEventListener) el.removeEventListener(evname, func, true); }; Sys.Extended.UI.HTMLEditor._removeEvents = function(el, evs, func) { for(var i=0; i < evs.length; i++) Sys.Extended.UI.HTMLEditor._removeEvent(el, evs[i], func); }; Sys.Extended.UI.HTMLEditor._stopEvent = function(ev) { if(ev) { if (Sys.Extended.UI.HTMLEditor.isIE) { ev.cancelBubble = true; ev.returnValue = false; } else { ev.preventDefault(); ev.stopPropagation(); } } }; Sys.Extended.UI.HTMLEditor.restrictedTags = ["DIV","P","TD","TR","TABLE","TBODY","LI","OL","UL","FORM","INPUT"]; // this list can be increased Sys.Extended.UI.HTMLEditor.isRestricted = function(element) { var elementTagName = element.tagName.toUpperCase(); for(var i=0; i < Sys.Extended.UI.HTMLEditor.restrictedTags.length; i++) { if (Sys.Extended.UI.HTMLEditor.restrictedTags[i].toUpperCase() == elementTagName) { return true; } } if(Sys.Extended.UI.HTMLEditor.isIE && element.scopeName.toUpperCase()!="HTML") { return true; } return false; }; Sys.Extended.UI.HTMLEditor.jsDocument = function(noExtraLf) { this.noExtraLf = (typeof noExtraLf != "undefined" && noExtraLf); this.text = []; //array to store the string this.write = function (str) { if(!this.noExtraLf || (this.text.length == 0 && str != "\n") || (this.text.length > 0 && (this.text[this.text.length-1] != "\n" || str != "\n"))) { this.text[this.text.length] = str; } }; this.append = this.write; this.writeln = function (str) { this.text[this.text.length] = str + "\n"; } this.toString = function () { return this.text.join(""); } this.clear = function () { delete this.text; this.text = null; this.text = new Array; } }; Sys.Extended.UI.HTMLEditor.isHeader = function(el) { var name = el.tagName.toUpperCase(); if(name.length==2) { if(name.substr(0,1)=="H" && parseInt(name.substr(1,1)) > 0) { return true; } } return false; }; Sys.Extended.UI.HTMLEditor._getReallyFirst = function(root) { if(typeof root.firstChild != "undefined" && root.firstChild != null) { if(typeof root.firstChild.childNodes != "undefined" && root.firstChild.childNodes != null) { return Sys.Extended.UI.HTMLEditor._getReallyFirst(root.firstChild) } } return root; }; Sys.Extended.UI.HTMLEditor._getReallyLast = function(root) { if(typeof root.lastChild != "undefined" && root.lastChild != null) { if(typeof root.lastChild.childNodes != "undefined" && root.lastChild.childNodes != null) { return Sys.Extended.UI.HTMLEditor._getReallyLast(root.lastChild) } } return root; }; Sys.Extended.UI.HTMLEditor._reallyFirst = function(root,seek) { if(root.firstChild) { if(root.firstChild == seek) return true; if(root.firstChild.childNodes) if(Sys.Extended.UI.HTMLEditor._lookChild(root.firstChild,seek) == 0 ) { return Sys.Extended.UI.HTMLEditor._reallyFirst(root.firstChild,seek) } } return false; }; Sys.Extended.UI.HTMLEditor._reallyLast = function(root,seek) { if(root.lastChild) { if(root.lastChild == seek) return true; if(root.lastChild.childNodes) if(Sys.Extended.UI.HTMLEditor._lookChild(root.lastChild,seek) == root.lastChild.childNodes.length-1 ) { return Sys.Extended.UI.HTMLEditor._reallyLast(root.lastChild,seek) } } return false; }; Sys.Extended.UI.HTMLEditor.getContainer = function(container, el) { if(el==container) return container; if(container.nodeType == 1) { for(var i=0; i < container.childNodes.length; i++) { var child = container.childNodes.item(i); if(el==child) return child; if(child.nodeType == 1) { var ind = Sys.Extended.UI.HTMLEditor._lookChild(child,el); if(ind >= 0) { if(child.tagName && Sys.Extended.UI.HTMLEditor.isStyleTag(child.tagName) && (child.tagName.toUpperCase() != "A") && !Sys.Extended.UI.HTMLEditor.isTempElement(child)) return Sys.Extended.UI.HTMLEditor.getContainer(child, el); else return child; } } } } return null; }; Sys.Extended.UI.HTMLEditor._TryTransformFromPxToPt = function(fontSize,editor, _id) { var ret = fontSize.replace(/^(\d+)\.(\d+)px/i,"$1px"); if(!Sys.Extended.UI.HTMLEditor.isIE) { if(ret && ret.length > 0) { var seek = ret.toLowerCase().split(",")[0]; if (typeof _id != "undefined") { var el = document.getElementById(_id); if(el != null) { var i; for(i=0; i< el.options.length; i++) { var cur = Sys.Extended.UI.HTMLEditor.fontSizeSeek(el.options.item(i).value.toLowerCase().split(",")[0]); if(cur==seek) break; } if(i==el.options.length) { var span = editor._doc.createElement("SPAN"); editor._doc.body.appendChild(span); for(i=1; i< 100; i++) { span.style.fontSize = i+"pt"; if(Sys.Extended.UI.HTMLEditor.getStyle(span,"font-size").replace(/^(\d+)\.(\d+)px/i,"$1px") == seek) { seek = i+"pt"; break; } } span.parentNode.removeChild(span); } } } ret = seek; } } return ret; }; Sys.Extended.UI.HTMLEditor.fontSizeSeek = function(val) { var seek = val.toString(); switch (seek) { case "1": seek="8pt"; break; case "2": seek="10pt"; break; case "3": seek="12pt"; break; case "4": seek="14pt"; break; case "5": seek="18pt"; break; case "6": seek="24pt"; break; case "7": seek="36pt"; break; } return seek; }; Sys.Extended.UI.HTMLEditor.getOwnerDocument = function(node) { return node.nodeType == 9 ? node : node.ownerDocument || node.document; }; Sys.Extended.UI.HTMLEditor.getClientViewportElement = function(opt_node) { var doc; if (opt_node.nodeType == 9) { doc = opt_node; } else { doc = Sys.Extended.UI.HTMLEditor.getOwnerDocument(opt_node); } if (Sys.Extended.UI.HTMLEditor.isIE && doc.compatMode != 'CSS1Compat') { return doc.body; } return doc.documentElement; }; Sys.Extended.UI.HTMLEditor.isReallyVisible = function(el) { var elem = el; var real_visible = true; while(elem) { if(elem.style && Sys.Extended.UI.HTMLEditor.getStyle(elem,"display") == "none") { real_visible = false; break; } elem = elem.parentNode; } return real_visible; } Sys.Extended.UI.HTMLEditor.setSelectionRange = function(input, selectionStart, selectionEnd) { input.focus(); if (input.setSelectionRange) { input.setSelectionRange(selectionStart, selectionEnd); } else if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); } }; Sys.Extended.UI.HTMLEditor.setElementVisibility = function(element) { var ret = new Array(); var elem = element; while(elem && elem.nodeType==1 && elem.tagName.toUpperCase() != "BODY") { var display = elem.style.display; var visibility = elem.style.visibility; if(elem.style && (display == "none" || visibility == "hidden")) { ret.push({element: elem, display: display, visibility: visibility}); elem.style.display = ""; elem.style.visibility = "visible"; } elem = elem.parentNode; } return ret; }; Sys.Extended.UI.HTMLEditor.restoreElementVisibility = function(arr) { for(var i=0; i < arr.length; i++) { var item = arr[i]; var style = item.element.style; style.display = item.display; style.visibility = item.visibility; } }; if(!Sys.Extended.UI.HTMLEditor.isIE) { try { //not all such browsers support getter/setter Sys.Extended.UI.HTMLEditor.__MozillaGetInnerText = function(node, html) { var els=node.childNodes; for(var i=0;i0&&this.set_toolbars($find(b[a]))},get_modePanels:function(){if(this._modePanels==null)this._modePanels=[];return this._modePanels},set_modePanel:function(a){this.get_modePanels().push(a)},get_modePanelIds:function(){},set_modePanelIds:function(c){for(var b=c.split(";"),a=0;a").replace(/"/g,'"').replace(/&/g,"&");a.setContent(a._initialCleanUp?Sys.Extended.UI.HTMLEditor.cleanUp(k.replace(/[\n\r]+/g," ")):k);a.setAcceptOnPostback()},_setActive:function(){var a=this;for(var b=0;b)(?:[^>]*?)>/gi,"").replace(/<\/?head(?=\s|>)(?:[^>]*?)>/gi,"").replace(/<\/?body(?=\s|>)(?:[^>]*?)>/gi,"").replace(/^([\n\r]+)/,"").replace(/([\n\r]+)$/,"");if(!Sys.Extended.UI.HTMLEditor.isIE)a=a.replace(/^$/,"");return a},setContent:function(c){var b=this,a=c;if(b.get_noScript())a=a.replace(/(]*?)>(?:[^<]*?)<\/script(?:[^>]*?)>)/ig,"");a=a.replace(/<\/?html(?=\s|>)(?:[^>]*?)>/gi,"").replace(/<\/?head(?=\s|>)(?:[^>]*?)>/gi,"").replace(/<\/?body(?=\s|>)(?:[^>]*?)>/gi,"").replace(/^([\n\r]+)/,"").replace(/([\n\r]+)$/,"");b._prepareContentForPostback(a);b.get_activePanel().set_content(a);b._validate(null,a)},_validate:function(d,c){var a=this._validators;if(a!=null&&typeof a!="undefined"){this._contentForValidation=c;try{for(var b=0;b/g,">").replace(/\"/g,""")},_getContentForPostback:function(){return this.get_contentElement().value.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&")},_setMode:function(b){var a=this,g=a.get_activePanel();if(!g._activated){var k=a;setTimeout(function(){k._setMode(b)},10);return false}var d=a.get_content();if(Sys.Extended.UI.HTMLEditor.isOpera)d=d.replace(/\r/ig,"");if(a._shouldResize&&b==Sys.Extended.UI.HTMLEditor.ActiveModeType.Html){var h=a.get_activePanel(),i=a.get_modePanels()[Sys.Extended.UI.HTMLEditor.ActiveModeType.Html];if(h!=null&&i!=null){var c=h.get_element(),e=c.offsetHeight,j=false,f;if(e==0){j=true;f=Sys.Extended.UI.HTMLEditor.setElementVisibility(c.parentNode);e=c.offsetHeight}i.get_element().style.height=e+"px";if(j){Sys.Extended.UI.HTMLEditor.restoreElementVisibility(f);delete f}}}a.disableToolbars(b);g._deactivate();a._activeMode=b;a.setContent(d);return true},disableToolbars:function(c){for(var a=0;a /// /// (function() { var scriptName = "ExtendedHover"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.HoverBehavior = function(element) { /// The DOM element the behavior is associated with. Sys.Extended.UI.HoverBehavior.initializeBase(this, [element]); this._elementHandlers = null; this._hoverElementHandlers = null; this._hoverElement = null; this._hoverCount = 0; this._unhoverDelay = 0; this._hoverDelay = 0; this._hoverScript = null; this._unhoverScript = null; this._hoverFired = false; } Sys.Extended.UI.HoverBehavior.prototype = { _setupHandlersArray: function() { var target = []; target[0] = Function.createDelegate(this, this._onHover); target[1] = Function.createDelegate(this, this._onUnhover); return target; }, get_elementHandlers: function() { if (!this._elementHandlers) { this._elementHandlers = this._setupHandlersArray(); } return this._elementHandlers; }, get_hoverElementHandlers: function() { if (!this._hoverElementHandlers) { this._hoverElementHandlers = this._setupHandlersArray(); } return this._hoverElementHandlers; }, get_hoverElement: function() { /// Dom element associated with this behavior. return this._hoverElement; }, set_hoverElement: function(element) { /// Dom element associated with this behavior. if (element != this._hoverElement) { if (this._hoverElement) { this._setupHandlers(this._hoverElement, this.get_hoverElementHandlers(), false); } this._hoverElement = element; if (this._hoverElement) { this._setupHandlers(this._hoverElement, this.get_hoverElementHandlers(), true); } } }, get_hoverDelay: function() { /// Delay in milliseconds before unhover event is raised. return this._hoverDelay; }, set_hoverDelay: function(value) { /// Delay in milliseconds before unhover event is raised. this._hoverDelay = value; this.raisePropertyChanged('hoverDelay'); }, get_hoverScript: function() { return this._hoverScript; }, set_hoverScript : function(script) { this._hoverScript = script; }, get_unhoverDelay: function() { /// Delay in milliseconds before unhover event is raised. return this._unhoverDelay; }, set_unhoverDelay: function(value) { /// Delay in milliseconds before unhover event is raised. this._unhoverDelay = value; this.raisePropertyChanged('unhoverDelay'); }, get_unhoverScript: function() { return this._unhoverScript; }, set_unhoverScript : function(script) { this._unhoverScript = script; }, dispose: function() { var element = this.get_element(); if (this._elementHandlers) { var handlers = this.get_elementHandlers(); this._setupHandlers(element, handlers, false); this._elementHandlers = null; } if(this._hoverElement) { var handlers = this.get_hoverElementHandlers(); this._setupHandlers(this._hoverElement, handlers, false); this._hoverElement = null; } Sys.Extended.UI.HoverBehavior.callBaseMethod(this, 'dispose'); }, initialize: function() { Sys.Extended.UI.HoverBehavior.callBaseMethod(this, 'initialize'); var handlers = this.get_elementHandlers(); this._setupHandlers(this.get_element(), handlers, true); if (this._hoverElement) { handlers = this.get_hoverElementHandlers(); this._setupHandlers(this._hoverElement, handlers, true); } }, add_hover: function(handler) { this.get_events().addHandler("hover", handler); }, remove_hover: function(handler) { this.get_events().removeHandler("hover", handler); }, _fireHover : function() { if (!this._hoverCount || this._hoverFired) { return; } var handler = this.get_events().getHandler("hover"); if (handler) { handler(this, Sys.EventArgs.Empty); } if (this._hoverScript) { eval(this._hoverScript); } this._hoverFired = true; }, _onHover: function() { this._hoverCount++; if (!this._hoverDelay) { this._fireHover(); } else { window.setTimeout(Function.createDelegate(this, this._fireHover), this._hoverDelay); } }, add_unhover: function(handler) { this.get_events().addHandler("unhover", handler); }, remove_unhover: function(handler) { this.get_events().removeHandler("unhover", handler); }, _fireUnhover : function() { if (this._hoverFired && !this._hoverCount) { this._hoverFired = false; var handler = this.get_events().getHandler("unhover"); if (handler) { handler(this, Sys.EventArgs.Empty); } if (this._unhoverScript) { eval(this._unhoverScript); } } }, _onUnhover: function() { this._hoverCount--; if (this._hoverCount <= 0) { this._hoverCount = 0; if (!this._unhoverDelay) { this._fireUnhover(); } else { window.setTimeout(Function.createDelegate(this, this._fireUnhover), this._unhoverDelay); } } }, _setupHandlers: function(element, handlers, hookup) { if (!this.get_isInitialized() || !element) return; if (hookup) { $addHandler(element, "mouseover", handlers[0]); $addHandler(element, "focus", handlers[0]); $addHandler(element, "mouseout", handlers[1]); $addHandler(element, "blur", handlers[1]); } else { $removeHandler(element, "mouseover", handlers[0]); $removeHandler(element, "focus", handlers[0]); $removeHandler(element, "mouseout", handlers[1]); $removeHandler(element, "blur", handlers[1]); } } } Sys.Extended.UI.HoverBehavior.descriptor = { properties: [ {name: 'hoverElement', isDomElement: true}, {name: 'unhoverDelay', type: Number} ], events: [ {name: 'hover'}, {name: 'unhover'} ] } Sys.Extended.UI.HoverBehavior.registerClass('Sys.Extended.UI.HoverBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.HoverBehavior, { name: "hover" }); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedBase", "ExtendedCommon"], execute); } else { execute(); } })(); O// (c) 2010 CodePlex Foundation (function(){var b="ExtendedAutoComplete";function a(){var o="itemOut",n="itemOver",m="itemSelected",l="hiding",k="shown",j="showing",i="populated",h="populating",z="showOnlyCurrentWordInCompletionListItem",y="completionListElementID",x="enableCaching",w="servicePath",v="serviceMethod",u="minimumPrefixLength",t="completionSetCount",s="completionList",r="completionInterval",g="black",f="white",e="hidden",q="mouseover",p="mousedown",d="blur",c=true,b=false,a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.AutoCompleteBehavior=function(e){var d=this;Sys.Extended.UI.AutoCompleteBehavior.initializeBase(d,[e]);d._servicePath=a;d._serviceMethod=a;d._contextKey=a;d._useContextKey=b;d._minimumPrefixLength=3;d._completionSetCount=10;d._completionInterval=1e3;d._completionListElementID=a;d._completionListElement=a;d._textColor="windowtext";d._textBackground="window";d._popupBehavior=a;d._popupBehaviorHiddenHandler=a;d._onShowJson=a;d._onHideJson=a;d._timer=a;d._cache=a;d._currentPrefix=a;d._selectIndex=-1;d._focusHandler=a;d._blurHandler=a;d._bodyClickHandler=a;d._completionListBlurHandler=a;d._keyDownHandler=a;d._mouseDownHandler=a;d._mouseUpHandler=a;d._mouseOverHandler=a;d._tickHandler=a;d._enableCaching=c;d._flyoutHasFocus=b;d._textBoxHasFocus=b;d._completionListCssClass=a;d._completionListItemCssClass=a;d._highlightedItemCssClass=a;d._delimiterCharacters=a;d._firstRowSelected=b;d._showOnlyCurrentWordInCompletionListItem=b;d._webRequest=a};Sys.Extended.UI.AutoCompleteBehavior.prototype={initialize:function(){var b=this;Sys.Extended.UI.AutoCompleteBehavior.callBaseMethod(b,"initialize");$common.prepareHiddenElementForATDeviceUpdate();b._popupBehaviorHiddenHandler=Function.createDelegate(b,b._popupHidden);b._tickHandler=Function.createDelegate(b,b._onTimerTick);b._focusHandler=Function.createDelegate(b,b._onGotFocus);b._blurHandler=Function.createDelegate(b,b._onLostFocus);b._keyDownHandler=Function.createDelegate(b,b._onKeyDown);b._mouseDownHandler=Function.createDelegate(b,b._onListMouseDown);b._mouseUpHandler=Function.createDelegate(b,b._onListMouseUp);b._mouseOverHandler=Function.createDelegate(b,b._onListMouseOver);b._completionListBlurHandler=Function.createDelegate(b,b._onCompletionListBlur);b._bodyClickHandler=Function.createDelegate(b,b._onCompletionListBlur);b._timer=new Sys.Timer;b.initializeTimer(b._timer);var c=b.get_element();b.initializeTextBox(c);if(b._completionListElementID!==a)b._completionListElement=$get(b._completionListElementID);if(b._completionListElement==a){b._completionListElement=document.createElement("ul");b._completionListElement.id=b.get_id()+"_completionListElem";if(Sys.Browser.agent===Sys.Browser.Safari)document.body.appendChild(b._completionListElement);else c.parentNode.insertBefore(b._completionListElement,c.nextSibling)}b.initializeCompletionList(b._completionListElement);b._popupBehavior=$create(Sys.Extended.UI.PopupBehavior,{id:b.get_id()+"PopupBehavior",parentElement:c,positioningMode:Sys.Extended.UI.PositioningMode.BottomLeft},a,a,b._completionListElement);b._popupBehavior.add_hidden(b._popupBehaviorHiddenHandler);b._onShowJson&&b._popupBehavior.set_onShow(b._onShowJson);b._onHideJson&&b._popupBehavior.set_onHide(b._onHideJson)},dispose:function(){var b=this;b._onShowJson=a;b._onHideJson=a;if(b._popupBehavior){b._popupBehaviorHiddenHandler&&b._popupBehavior.remove_hidden(b._popupBehaviorHiddenHandler);b._popupBehavior.dispose();b._popupBehavior=a}if(b._timer){b._timer.dispose();b._timer=a}var c=b.get_element();if(c){$removeHandler(c,"focus",b._focusHandler);$removeHandler(c,d,b._blurHandler);$removeHandler(c,"keydown",b._keyDownHandler);$removeHandler(b._completionListElement,d,b._completionListBlurHandler);$removeHandler(b._completionListElement,p,b._mouseDownHandler);$removeHandler(b._completionListElement,"mouseup",b._mouseUpHandler);$removeHandler(b._completionListElement,q,b._mouseOverHandler)}if(b._bodyClickHandler){$removeHandler(document.body,"click",b._bodyClickHandler);b._bodyClickHandler=a}b._popupBehaviorHiddenHandler=a;b._tickHandler=a;b._focusHandler=a;b._blurHandler=a;b._keyDownHandler=a;b._completionListBlurHandler=a;b._mouseDownHandler=a;b._mouseUpHandler=a;b._mouseOverHandler=a;Sys.Extended.UI.AutoCompleteBehavior.callBaseMethod(b,"dispose")},initializeTimer:function(a){a.set_interval(this._completionInterval);a.add_tick(this._tickHandler)},initializeTextBox:function(a){a.autocomplete="off";$addHandler(a,"focus",this._focusHandler);$addHandler(a,d,this._blurHandler);$addHandler(a,"keydown",this._keyDownHandler)},initializeCompletionList:function(c){var b=this;if(b._completionListCssClass)Sys.UI.DomElement.addCssClass(c,b._completionListCssClass);else{var a=c.style;a.textAlign="left";a.visibility=e;a.cursor="default";a.listStyle="none";a.padding="0px";a.margin="0px! important";if(Sys.Browser.agent===Sys.Browser.Safari){a.border="solid 1px gray";a.backgroundColor=f;a.color=g}else{a.border="solid 1px buttonshadow";a.backgroundColor=b._textBackground;a.color=b._textColor}}$addHandler(c,p,b._mouseDownHandler);$addHandler(c,"mouseup",b._mouseUpHandler);$addHandler(c,q,b._mouseOverHandler);$addHandler(c,d,b._completionListBlurHandler);$addHandler(document.body,"click",b._bodyClickHandler)},_currentCompletionWord:function(){var b=this,f=b.get_element(),c=f.value,d=c;if(b.get_isMultiWord()){var a=b._getCurrentWordStartIndex(),e=b._getCurrentWordEndIndex(a);if(e<=a)d=c.substring(a);else d=c.substring(a,e)}return d},_getCursorIndex:function(){return this.get_element().selectionStart},_getCurrentWordStartIndex:function(){var a=this;for(var g=a.get_element(),f=g.value.substring(0,a._getCursorIndex()),b=0,c=-1,d=0;dc)c=e}b=c;if(b>=a._getCursorIndex())b=0;return b<0?0:b+1},_getCurrentWordEndIndex:function(d){for(var e=this.get_element(),f=e.value.substring(d),a=0,c=0;c0&&(b0)f=c.substring(0,a);if(e>a)g=c.substring(e);h=f+d+g}return h},_hideCompletionList:function(){var a=new Sys.CancelEventArgs;this.raiseHiding(a);if(a.get_cancel())return;this.hidePopup()},showPopup:function(){this._popupBehavior.show();this.raiseShown(Sys.EventArgs.Empty)},hidePopup:function(){if(this._popupBehavior)this._popupBehavior.hide();else this._popupHidden()},_popupHidden:function(){var a=this;a._completionListElement.innerHTML="";a._selectIndex=-1;a._flyoutHasFocus=b;a.raiseHidden(Sys.EventArgs.Empty)},_highlightItem:function(d){var a=this;for(var h=a._completionListElement.childNodes,e=0;e0){a._selectIndex--;a._handleScroll(a._completionListElement.childNodes[a._selectIndex],a._selectIndex);a._highlightItem(a._completionListElement.childNodes[a._selectIndex]);d.stopPropagation();d.preventDefault()}}else if(e===Sys.UI.Key.down){if(a._selectIndex=0)a.scrollTop+=b.height*c-(a.clientHeight+a.scrollTop)+b.height;if(b.height*(d-(c+1))-(a.scrollHeight-a.scrollTop)>=0)a.scrollTop-=b.height*(d-(c+1))-(a.scrollHeight-a.scrollTop)+b.height;if(a.scrollTop%b.height!==0)if(b.height*(c+1)-(a.clientHeight+a.scrollTop)>=0)a.scrollTop-=a.scrollTop%b.height;else a.scrollTop+=b.height-a.scrollTop%b.height},_handleFlyoutFocus:function(){var b=this;if(!b._textBoxHasFocus)if(!b._flyoutHasFocus){if(b._webRequest){b._webRequest.get_executor().abort();b._webRequest=a}b._hideCompletionList()}},_onLostFocus:function(){var a=this;a._textBoxHasFocus=b;a._timer.set_enabled(b);window.setTimeout(Function.createDelegate(a,a._handleFlyoutFocus),500)},_onMethodComplete:function(d,b){this._webRequest=a;this._update(b,d,c)},_onMethodFailed:function(){this._webRequest=a},_onTimerTick:function(g,e){var c=this;c._timer.set_enabled(b);if(c._servicePath&&c._serviceMethod){var d=c._currentCompletionWord();if(d.trim().length0){if(b[0]=="error"){a._onError(b[1]);return}e=parseInt(b[0])}if(b.length>1)c=b[1];if(a.get_completeBackColor()!="")if(a._innerTB!=null)a._innerTB.style.backgroundColor=a.get_completeBackColor();else a._inputFile.style.backgroundColor=a.get_completeBackColor();a.raiseUploadComplete(new Sys.Extended.UI.AsyncFileUploadEventArgs(a._inputFile.value,e,c,null))},_onload:function(i){var d=null,f=true,a=this,m=f,g=a,c=document.getElementById(a._formName);try{var b=a._iframe.contentWindow.document;if(b==d||b.location==d){var i={message:Sys.Extended.UI.Resources.AsyncFileUpload_UploadingProblem};throw i;}else if(b.location.href=="about:blank"){a._removeTimer();if(a.get_uploadingBackColor()!="")if(a._innerTB!=d)a._innerTB.style.backgroundColor=a.get_uploadingBackColor();else a._inputFile.style.backgroundColor=a.get_uploadingBackColor();var s=a._onStart(a._inputFile.value);if(s){var h=a._postBackUrl;h+=h.indexOf("?")===-1?"?":"&";c.action=h+"AsyncFileUploadID="+a.get_element().id+"&rnd="+Math.random().toString().replace(/\./g,"");c.target=a._iframeName;m=false;a.setThrobber(f);setTimeout(function(){c.submit();g._waitTimer=setTimeout(function(){g._wait()},100)},0);return f}}else{if(b.body.innerHTML=="")return f;var q=b.getElementById(a.get_element().id),o,j="";if(q!=d){var e=q.innerHTML.split("------");if(e.length>0){if(e[0]=="error"){var i={message:e[1]};throw i;}o=parseInt(e[0])}if(e.length>1)j=e[1]}else{var k=Sys.Extended.UI.Resources.AsyncFileUpload_UnknownServerError;function r(b,a){k=a;return""}b.body.innerHTML.replace(/Exception\]:([^\n\r]+)[\n\r]/,r);var l=Sys.Extended.UI.Resources.AsyncFileUpload_ServerResponseError+": '"+k+"'",t=confirm(l+"\n\n"+Sys.Extended.UI.Resources.AsyncFileUpload_ConfirmToSeeErrorPage);if(t){var n=window.open("","NotFoundInAnswer","toolbar=0,status=1,scrollbars=1,resizable=1,width=600,height=400");function p(){try{!n.document&&setTimeout(p,100)}catch(c){return}var a=n.document;a.open();a.write(""+b.body.innerHTML+"");a.close()}setTimeout(p,0)}var i={message:l};throw i;}a._removeTimer();c.target="_top";c.action=a._postBackUrl;if(a.get_completeBackColor()!="")if(a._innerTB!=d)a._innerTB.style.backgroundColor=a.get_completeBackColor();else a._inputFile.style.backgroundColor=a.get_completeBackColor();a.setThrobber(false);a.raiseUploadComplete(new Sys.Extended.UI.AsyncFileUploadEventArgs(a._inputFile.value,o,j,d))}}catch(u){a._removeTimer();c.target="_top";c.action=a._postBackUrl;a._onError(u.message)}finally{m&&setTimeout(function(){g._removeIframe()},100)}},_wait:function(){var a=this;if(a._waitTimer==null)return;var b=a;try{var c=a._iframe.contentWindow.document,d=c.location,e=d.href;a._waitTimer=setTimeout(function(){b._wait()},100)}catch(f){setTimeout(function(){b._removeIframe()},100);setTimeout(function(){b._onError(Sys.Extended.UI.Resources.AsyncFileUpload_UploadingProblem)},0);a._waitTimer=null}}};Sys.Extended.UI.AsyncFileUpload.registerClass("Sys.Extended.UI.AsyncFileUpload",Sys.Extended.UI.ControlBase);Sys.Extended.UI.AsyncFileUploadEventArgs=function(d,e,c,b){var a=this;if(arguments.length!=4)throw Error.parameterCount();Sys.Extended.UI.AsyncFileUploadEventArgs.initializeBase(a);a._fileName=d;a._length=e;a._contentType=c;a._errorMessage=b};Sys.Extended.UI.AsyncFileUploadEventArgs.prototype={get_fileName:function(){var b=this._fileName.lastIndexOf("/"),a=this._fileName.lastIndexOf("\\"),c=this._fileName.substr((b>a?b:a)+1);return c},get_path:function(){return this._fileName},get_length:function(){return this._length},get_contentType:function(){return this._contentType},get_errorMessage:function(){return this._errorMessage}};Sys.Extended.UI.AsyncFileUploadEventArgs.registerClass("Sys.Extended.UI.AsyncFileUploadEventArgs",Sys.EventArgs);6  & h( @ QQQQQQQQQQQQQQQQQ$QQ$Q!!Q$Q!!!!!!Q$Q!!!!!!!!!!Q$Q!!!!!!!!!!QQ!!!!!!!!QQ!!!!!!QQ!!!!!!QQ!!!!QQQQQQQQQQQQQ!!QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ$QQ$QQ$QQ$QQ$QQQQQQQQQQQQQQQQQ????91 ?19??(  $QQQQQQQQ$QQ$Q֏RSQQbcJKQQmmQQQQQQQQQQQQQQQQQQQQQQQQQQQQ$QQ$QQQQQQQQ${{$KObGIF89a ض! ,?(`*(LPaB@" @GBX@p%0 &;GIF89a~~~}}}vvvhhhXXXRRRKKKEEEDDDAAA???===555333!;,pH,rl6I Zի5+5, )Yt9uU E|l\$!/:"xm:89'I%:)g3 *:#Ug2,14P#:(P--P +PPPPPGA;GIF89a  ! , FI%ۜ7rc|ډ2ez)0LR7 p&Ia 8%AD%ԬVbzx<;GIF89a?@@@@@)^!?,pH, Il:METYU(:9n`po ٍQ{ )<=B7 6|~6B 4=B5 -=oo6+>>=B64=899=4B10=#=>=*B0!(==>988=2B! $/ (BSnȔ-HbG/L#֎xA!5% p  L@ LH4H0Ad@dP իA;GIF89a?)Ed@EEE䚓OS}Mr/?ffϐ¾Tz1tಶ|pdE䗙V\Mxx {|~zdŝrtwvύ?D!?,pH,rl 3JUNH4'yJ,+S%,7I !wpqP" PBL 32>B;16,<<#B-5/B7 %)B8* 8B9:B:B=GA;iGIF89a333!,@pH,rl 3JUNvBx<. z6Wy.6+ Mtt~ Bs d c ĎGA;IGIF89a;;; :::&&&888111!,3[i=BN;!"/* default layout */ .ajax__tab_default .ajax__tab_header {white-space:normal !important} .ajax__tab_default .ajax__tab_outer {display:-moz-inline-box;display:inline-block} .ajax__tab_default .ajax__tab_inner {display:-moz-inline-box;display:inline-block} .ajax__tab_default .ajax__tab_tab {overflow:hidden;text-align:center;display:-moz-inline-box;display:inline-block} .ajax__tab_xp .ajax__tab_disabled { cursor: default; color: #A0A0A0; } /* xp theme top / default */ .ajax__tab_xp .ajax__tab_header {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("Tabs.tab-line.gif")%>) repeat-x bottom; } .ajax__tab_xp .ajax__tab_header .ajax__tab_outer {padding-right:4px;background:url(<%=WebResource("Tabs.tab-right.gif")%>) no-repeat right;height:21px;} .ajax__tab_xp .ajax__tab_header .ajax__tab_inner {padding-left:3px;background:url(<%=WebResource("Tabs.tab-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header .ajax__tab_tab {height:13px;padding:4px;margin:0px;background:url(<%=WebResource("Tabs.tab.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header .ajax__tab_hover .ajax__tab_outer {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-right.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header .ajax__tab_hover .ajax__tab_inner {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header .ajax__tab_hover .ajax__tab_tab {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover.gif")%>) repeat-x;} /*.ajax__tab_xp .ajax__tab_header .ajax__tab_active { margin-top: 1px; } */ .ajax__tab_xp .ajax__tab_header .ajax__tab_active .ajax__tab_outer {background:url(<%=WebResource("Tabs.tab-active-right.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header .ajax__tab_active .ajax__tab_inner {background:url(<%=WebResource("Tabs.tab-active-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header .ajax__tab_active .ajax__tab_tab {background:url(<%=WebResource("Tabs.tab-active.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_body {font-family:verdana,tahoma,helvetica;font-size:10pt;border:1px solid #999999;border-top:0;padding:8px;background-color:#ffffff;} /* xp theme vertical left */ .ajax__tab_xp .ajax__tab_header_verticalleft {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("Tabs.tab-line.gif")%>) repeat-y right;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_outer {padding-right:4px;background:url(<%=WebResource("Tabs.tab-right-verticalleft.gif")%>) no-repeat right;height:21px;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_inner {padding-left:3px;background:url(<%=WebResource("Tabs.tab-left-verticalleft.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_tab {height:13px;padding:4px;margin:0px;background:url(<%=WebResource("Tabs.tab-verticalleft.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_hover .ajax__tab_outer {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-right-verticalleft.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_hover .ajax__tab_inner {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-left-verticalleft.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_hover .ajax__tab_tab {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-verticalleft.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_active { margin-top: 1px; } .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_active .ajax__tab_outer {background:url(<%=WebResource("Tabs.tab-active-right-verticalleft.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_active .ajax__tab_inner {background:url(<%=WebResource("Tabs.tab-active-left-verticalleft.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalleft .ajax__tab_active .ajax__tab_tab {background:url(<%=WebResource("Tabs.tab-active-verticalleft.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_body_verticalleft {font-family:verdana,tahoma,helvetica;font-size:10pt;border:1px solid #999999;border-left:0;padding:8px;background-color:#ffffff;} /* xp theme vertical right */ .ajax__tab_xp .ajax__tab_header_verticalright {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("Tabs.tab-line.gif")%>) repeat-y left;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_outer {padding-right:4px;background:url(<%=WebResource("Tabs.tab-right-verticalright.gif")%>) no-repeat right;height:21px;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_inner {padding-left:3px;background:url(<%=WebResource("Tabs.tab-left-verticalright.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_tab {height:13px;padding:4px;margin:0px;background:url(<%=WebResource("Tabs.tab-verticalright.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_hover .ajax__tab_outer {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-right-verticalright.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_hover .ajax__tab_inner {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-left-verticalright.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_hover .ajax__tab_tab {cursor:pointer;background:url(<%=WebResource("Tabs.tab-hover-verticalright.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_active { margin-top: 1px; } .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_active .ajax__tab_outer {background:url(<%=WebResource("Tabs.tab-active-right-verticalright.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_active .ajax__tab_inner {background:url(<%=WebResource("Tabs.tab-active-left-verticalright.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_verticalright .ajax__tab_active .ajax__tab_tab {background:url(<%=WebResource("Tabs.tab-active-verticalright.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_body_verticalright {font-family:verdana,tahoma,helvetica;font-size:10pt;border:1px solid #999999;border-right:0;padding:8px;background-color:#ffffff;} /* header on bottom */ .ajax__tab_xp .ajax__tab_header_bottom {font-family:verdana,tahoma,helvetica;font-size:11px;background:url(<%=WebResource("Tabs.tab-line.gif")%>) repeat-x top;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_outer {padding-right:4px;background:url(<%=WebResource("Tabs.tab-bottom-right.gif")%>) no-repeat right;height:21px;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_inner {padding-left:3px;background:url(<%=WebResource("Tabs.tab-bottom-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_tab {height:17px;padding:0px 4px 4px 4px;margin:0px;background:url(<%=WebResource("Tabs.tab-bottom.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_hover .ajax__tab_outer {cursor:pointer;background:url(<%=WebResource("Tabs.tab-bottom-hover-right.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_hover .ajax__tab_inner {cursor:pointer;background:url(<%=WebResource("Tabs.tab-bottom-hover-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_hover .ajax__tab_tab {cursor:pointer;background:url(<%=WebResource("Tabs.tab-bottom-hover.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_active .ajax__tab_outer {background:url(<%=WebResource("Tabs.tab-bottom-active-right.gif")%>) no-repeat right;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_active .ajax__tab_inner {background:url(<%=WebResource("Tabs.tab-bottom-active-left.gif")%>) no-repeat;} .ajax__tab_xp .ajax__tab_header_bottom .ajax__tab_active .ajax__tab_tab {background:url(<%=WebResource("Tabs.tab-bottom-active.gif")%>) repeat-x;} .ajax__tab_xp .ajax__tab_body_bottom {font-family:verdana,tahoma,helvetica;font-size:10pt;border:1px solid #999999;border-bottom:0;padding:8px;background-color:#ffffff;} /* scrolling */ .ajax__scroll_horiz {overflow-x:scroll;} .ajax__scroll_vert {overflow-y:scroll;} .ajax__scroll_both {overflow:scroll} .ajax__scroll_auto {overflow:auto} .ajax__scroll_none {overflow:hidden} /* plain theme */ .ajax__tab_plain .ajax__tab_outer {text-align: center; vertical-align: middle; border:2px solid #999999;} .ajax__tab_plain .ajax__tab_inner {text-align: center; vertical-align: middle; } .ajax__tab_plain .ajax__tab_body {text-align: center; vertical-align: middle;} .ajax__tab_plain .ajax__tab_header {text-align: center; vertical-align: middle;} .ajax__tab_plain .ajax__tab_active .ajax__tab_outer {background:#FFFFE1;} o@charset "utf-8"; /* CSS Document */ /*Round Rectangle Popup Sprite*/ .roundRectangle{float:left; } #type2 {background-color:#CDDFCA;} #type2 .corner {background-image:url(<%=WebResource("BalloonPopup.corners-type2.gif")%>);} .roundedBox {position:relative; padding:17px; margin:0px 0;} .corner {position:absolute; width:17px; height:17px;} .topLeft {top:0; left:0; background-position:-1px -1px;} .topRight {top:0; right:0; background-position:-19px -1px;} .bottomLeft {bottom:0; left:0; background-position:-1px -19px;} .bottomRight {bottom:0; right:0; background-position:-19px -19px;} .up-left-arrow{ float:right; margin-top:-1px; background-image:url(<%=WebResource("BalloonPopup.act_up_left.png")%>); position:relative; top:0; left:10; width:50px; height:30px;} .up-right-arrow{ float:left; margin-top:-1px;background-image:url(<%=WebResource("BalloonPopup.act_up_right.png")%>); position:relative; top:0; left:10; width:50px; height:30px;} .down-left-arrow{ float:right; margin-top:-1px; background-image:url(<%=WebResource("BalloonPopup.act_down_left.png")%>); position:relative; top:0; left:10; width:50px; height:30px;} .down-right-arrow{ float:left; margin-top:-1px;background-image:url(<%=WebResource("BalloonPopup.act_down_right.png")%>); position:relative; top:0; left:10; width:50px; height:30px;} .clear{clear:both ;}U// (c) 2010 CodePlex Foundation /// /// /// /// /// /// /// /// /// Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.ValidatorCalloutBehavior = function Sys$Extended$UI$ValidatorCalloutBehavior(element) { Sys.Extended.UI.ValidatorCalloutBehavior.initializeBase(this, [element]); this._warningIconImageUrl = null; this._closeImageUrl = null; this._cssClass = "ajax__validatorcallout"; this._highlightCssClass = null; this._popupPosition = Sys.Extended.UI.ValidatorCalloutPosition.Right; this._width = "200px"; this._invalid = false; this._originalValidationMethod = null; this._validationMethodOverride = null; this._elementToValidate = null; this._popupTable = null; this._errorMessageCell = null; this._calloutArrowCell = null; this._warningIconImage = null; this._closeImage = null; this._closeCellInnerDiv = null; this._popupBehavior = null; this._onShowJson = null; this._onHideJson = null; this._focusAttached = false; this._isBuilt = false; this._focusHandler = Function.createDelegate(this, this._onfocus); this._closeClickHandler = Function.createDelegate(this, this._oncloseClick); } Sys.Extended.UI.ValidatorCalloutBehavior.prototype = { initialize : function() { Sys.Extended.UI.ValidatorCalloutBehavior.callBaseMethod(this, 'initialize'); var elt = this.get_element(); if(elt.evaluationfunction) { this._originalValidationMethod = Function.createDelegate(elt, elt.evaluationfunction); this._validationMethodOverride = Function.createDelegate(this, this._onvalidate); elt.evaluationfunction = this._validationMethodOverride; } var clientState = this.get_ClientState(); if ((null != clientState) && ("" !== clientState)) { this._ensureCallout(); if(this._highlightCssClass) { Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass); } this.show(); } }, _ensureCallout : function() { if (!this._isBuilt) { var elt = this.get_element(); var elementToValidate = this._elementToValidate = $get(elt.controltovalidate); var popupTableBody = document.createElement("tbody"); var popupTableRow = document.createElement("tr"); var calloutCell = document.createElement("td"); var calloutTable = document.createElement("table"); var calloutTableBody = document.createElement("tbody"); var calloutTableRow = document.createElement("tr"); var iconCell = document.createElement("td"); var closeCell = document.createElement("td"); var closeCellInnerDiv = this._closeCellInnerDiv = document.createElement("div"); var popupTable = this._popupTable = document.createElement("table"); var calloutArrowCell = this._calloutArrowCell = document.createElement("td"); var warningIconImage = this._warningIconImage = document.createElement("img"); var closeImage = this._closeImage = document.createElement("img"); var errorMessageCell = this._errorMessageCell = document.createElement("td"); popupTable.id = this.get_id() + "_popupTable"; popupTable.cellPadding = 0; popupTable.cellSpacing = 0; popupTable.border = 0; popupTable.width = this.get_width(); popupTable.className = this._cssClass + " ajax__validatorcallout_popup_table"; popupTableRow.className = "ajax__validatorcallout_popup_table_row"; calloutCell.className = "ajax__validatorcallout_callout_cell"; calloutTable.cellPadding = 0; calloutTable.cellSpacing = 0; calloutTable.border = 0; calloutTable.className = "ajax__validatorcallout_callout_table"; calloutTableRow.className = "ajax__validatorcallout_callout_table_row"; if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft) calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_bottomleftpos"; else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_bottomrightpos" else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft) calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_topleftpos" else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_toprightpos" else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left) calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_leftpos"; else calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell"; iconCell.className = "ajax__validatorcallout_icon_cell"; warningIconImage.border = 0; warningIconImage.src = this.get_warningIconImageUrl(); errorMessageCell.className = "ajax__validatorcallout_error_message_cell"; errorMessageCell.innerHTML = this._getErrorMessage(); closeCell.className = "ajax__validatorcallout_close_button_cell"; closeCellInnerDiv.className = "ajax__validatorcallout_innerdiv"; closeImage.src = this.get_closeImageUrl(); elt.parentNode.appendChild(popupTable) popupTable.appendChild(popupTableBody); popupTableBody.appendChild(popupTableRow); popupTableRow.appendChild(calloutCell); calloutCell.appendChild(calloutTable); calloutTable.appendChild(calloutTableBody); calloutTableBody.appendChild(calloutTableRow); calloutTableRow.appendChild(calloutArrowCell); popupTableRow.appendChild(iconCell); iconCell.appendChild(warningIconImage); popupTableRow.appendChild(errorMessageCell); popupTableRow.appendChild(closeCell); closeCellInnerDiv.appendChild(closeImage); closeCell.appendChild(closeCellInnerDiv); if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft || this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) { var calloutExtraTableRow = document.createElement("tr"); popupTableBody.insertBefore(calloutExtraTableRow, popupTableRow); calloutArrowCell.colSpan = 2; calloutExtraTableRow.appendChild(calloutArrowCell); popupTableRow.appendChild(iconCell); popupTableRow.appendChild(errorMessageCell); popupTableRow.appendChild(closeCell); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft || this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) { var calloutExtraTableRow = document.createElement("tr"); popupTableBody.appendChild(calloutExtraTableRow); calloutArrowCell.colSpan = 2; calloutExtraTableRow.appendChild(calloutArrowCell); popupTableRow.appendChild(iconCell); popupTableRow.appendChild(errorMessageCell); popupTableRow.appendChild(closeCell); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left) { popupTableRow.appendChild(iconCell); popupTableRow.appendChild(errorMessageCell); popupTableRow.appendChild(closeCell); popupTableRow.appendChild(calloutCell); } else { popupTableRow.appendChild(calloutCell); popupTableRow.appendChild(iconCell); popupTableRow.appendChild(errorMessageCell); popupTableRow.appendChild(closeCell); } var div = document.createElement("div"); div.className = "ajax__validatorcallout_innerdiv"; calloutArrowCell.appendChild(div); if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft || this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) { var pixel = document.createElement("div"); pixel.style.width = "1px"; pixel.className = "arrowpixel"; div.appendChild(pixel); for (var i = 1; i < 22; i += 2) { var line = document.createElement("div"); line.style.width = i.toString() + "px"; div.appendChild(line); } } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft || this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) { for (var i = 23; i > 0; i -= 2) { var line = document.createElement("div"); line.style.width = i.toString() + "px"; div.appendChild(line); } var pixel = document.createElement("div"); pixel.style.width = "1px"; pixel.className = "arrowpixel"; div.appendChild(pixel); } else { for (var i = 14; i > 0; i--) { var line = document.createElement("div"); line.style.width = i.toString() + "px"; div.appendChild(line); } } this._popupBehavior = $create( Sys.Extended.UI.PopupBehavior, { parentElement : elementToValidate }, { }, null, this._popupTable); if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopLeft); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopRight); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomLeft); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomRight); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Right) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Right); } else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left) { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Left); } else { this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Right); } if (this._onShowJson) { this._popupBehavior.set_onShow(this._onShowJson); } if (this._onHideJson) { this._popupBehavior.set_onHide(this._onHideJson); } $addHandler(this._closeCellInnerDiv, "click", this._closeClickHandler); this._isBuilt = true; } }, dispose : function() { if (this._isBuilt) { this.hide(); if (this._focusAttached) { $removeHandler(this._elementToValidate, "focus", this._focusHandler); this._focusAttached = false; } $removeHandler(this._closeCellInnerDiv, "click", this._closeClickHandler); this._onShowJson = null; this._onHideJson = null; if (this._popupBehavior) { this._popupBehavior.dispose(); this._popupBehavior = null; } if (this._closeBehavior) { this._closeBehavior.dispose(); this._closeBehavior = null; } if (this._popupTable) { this._popupTable.parentNode.removeChild(this._popupTable); this._popupTable = null; this._errorMessageCell = null; this._elementToValidate = null; this._calloutArrowCell = null; this._warningIconImage = null; this._closeImage = null; this._closeCellInnerDiv = null; } this._isBuilt = false; } Sys.Extended.UI.ValidatorCalloutBehavior.callBaseMethod(this, 'dispose'); }, _getErrorMessage : function() { return this.get_element().errormessage || Sys.Extended.UI.Resources.ValidatorCallout_DefaultErrorMessage; }, show : function(force) { if (force || !this.get_isOpen()) { if(force && Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout) { Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout.hide(); } if(Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout != null) { return; } Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout = this; this._errorMessageCell.innerHTML = this._getErrorMessage(); this._popupBehavior.show(); } }, hide : function() { if(Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout == this) { Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout = null; } if (this.get_isOpen()) { this._popupBehavior.hide(); } }, _onfocus : function(e) { if(!this._originalValidationMethod(this.get_element())) { this._ensureCallout(); if(this._highlightCssClass) { Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass); } this.show(true); return false; } else { this.hide(); return true; } }, _oncloseClick : function(e) { this.hide(); }, _onvalidate : function(val) { if(!this._originalValidationMethod(val)) { this._ensureCallout(); if(this._highlightCssClass) { Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass); } if (!this._focusAttached) { $addHandler(this._elementToValidate, "focus", this._focusHandler); this._focusAttached = true; } this.show(false); this._invalid = true; return false; } else { if(this._highlightCssClass && this._invalid) { Sys.UI.DomElement.removeCssClass(this._elementToValidate, this._highlightCssClass) } this._invalid = false; this.hide(); return true; } }, get_onShow : function() { /// /// Generic OnShow Animation's JSON definition /// return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson; }, set_onShow : function(value) { if (this._popupBehavior) { this._popupBehavior.set_onShow(value) } else { this._onShowJson = value; } this.raisePropertyChanged('onShow'); }, get_onShowBehavior : function() { /// /// Generic OnShow Animation's behavior /// return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null; }, onShow : function() { ///

/// Play the OnShow animation /// /// if (this._popupBehavior) { this._popupBehavior.onShow(); } }, get_onHide : function() { /// /// Generic OnHide Animation's JSON definition /// return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson; }, set_onHide : function(value) { if (this._popupBehavior) { this._popupBehavior.set_onHide(value) } else { this._onHideJson = value; } this.raisePropertyChanged('onHide'); }, get_onHideBehavior : function() { /// /// Generic OnHide Animation's behavior /// return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null; }, onHide : function() { /// /// Play the OnHide animation /// /// if (this._popupBehavior) { this._popupBehavior.onHide(); } }, get_warningIconImageUrl : function() { return this._warningIconImageUrl; }, set_warningIconImageUrl : function(value) { if (this._warningIconImageUrl != value) { this._warningIconImageUrl = value; if (this.get_isInitialized()) { this._warningIconImage.src = value; } this.raisePropertyChanged("warningIconImageUrl"); } }, get_closeImageUrl : function() { return this._closeImageUrl; }, set_closeImageUrl : function(value) { if (this._closeImageUrl != value) { this._closeImageUrl = value; if (this.get_isInitialized()) { this._closeImage.src = value; } this.raisePropertyChanged("closeImageUrl"); } }, get_width : function() { return this._width; }, set_width : function(value) { if (this._width != value) { this._width = value; if (this.get_isInitialized()) { this._popupTable.style.width = _width; } this.raisePropertyChanged("width"); } }, get_popupPosition: function() { /// /// Where the popup should be positioned relative to the target control. /// Can be Right (Default), Left, BottomLeft, BottomRight, TopLeft or TopRight. /// return this._popupPosition; }, set_popupPosition: function(value) { if (this._popupPosition != value) { this._popupPosition = value; this.raisePropertyChanged('popupPosition'); } }, get_cssClass : function() { return this._cssClass; }, set_cssClass : function(value) { if (this._cssClass != value) { this._cssClass = value; this.raisePropertyChanged("cssClass"); } }, get_highlightCssClass : function() { return this._highlightCssClass; }, set_highlightCssClass : function(value) { if (this._highlightCssClass != value) { this._highlightCssClass = value; this.raisePropertyChanged("highlightCssClass"); } }, get_isOpen : function() { return $common.getVisible(this._popupTable); } } Sys.Extended.UI.ValidatorCalloutBehavior.registerClass('Sys.Extended.UI.ValidatorCalloutBehavior', Sys.Extended.UI.BehaviorBase); Sys.Extended.UI.ValidatorCalloutPosition = function() { /// /// Position of the popup relative to the target control /// /// /// /// /// /// /// throw Error.invalidOperation(); } Sys.Extended.UI.ValidatorCalloutPosition.prototype = { Right: 0, Left: 1, BottomLeft: 2, BottomRight: 3, TopLeft: 4, TopRight: 5 } Sys.Extended.UI.ValidatorCalloutPosition.registerEnum('Sys.Extended.UI.ValidatorCalloutPosition'); %// (c) 2010 CodePlex Foundation (function(){var b="ExtendedResizable";function a(){var f="resizebegin",e="resize",m="Function",l="value",d="resizing",k="selectstart",j="mouseup",i="mousemove",c="mousedown",o="mouseout",n="mouseover",h="height",g="width",b="px",a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.ResizableControlBehavior=function(c){var b=this;Sys.Extended.UI.ResizableControlBehavior.initializeBase(b,[c]);b._HandleCssClass="";b._ResizableCssClass="";b._HandleOffsetX=0;b._HandleOffsetY=0;b._MinimumWidth=0;b._MinimumHeight=0;b._MaximumWidth=1e5;b._MaximumHeight=1e5;b._frame=a;b._handle=a;b._handleHolder=a;b._lining=a;b._tracking=false;b._lastClientX=0;b._lastClientY=0;b._onmouseoverDelegate=a;b._onmouseoutDelegate=a;b._onmousedownDelegate=a;b._onmousemoveDelegate=a;b._onmouseupDelegate=a;b._onselectstartDelegate=a};Sys.Extended.UI.ResizableControlBehavior.prototype={initialize:function(){var d="absolute",a=this;Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(a,"initialize");a._frame=a.get_element();var e=Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(a,"get_ClientState");if(e&&-1!=e.indexOf(",")){var f=e.split(",");a._frame.style.width=f[0]+b;a._frame.style.height=f[1]+b}a._lining=document.createElement("DIV");a._lining.style.width=$common.getCurrentStyle(a._frame,g);a._lining.style.height=$common.getCurrentStyle(a._frame,h);a._lining.style.position=d;a._lining.style.backgroundColor="black";a._lining.style.opacity="0";a._lining.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=0)";a._lining.style.visibility="hidden";a._frame.insertBefore(a._lining,a._frame.firstChild);a._handleHolder=document.createElement("DIV");a._handleHolder.style.width="0px";a._handleHolder.style.height="0px";a._handleHolder.style.position=Sys.Browser.agent===Sys.Browser.Opera?"relative":d;a._frame.insertBefore(a._handleHolder,a._frame.firstChild);a._handle=document.createElement("DIV");a._handle.className=a._HandleCssClass;a._handle.style.position=d;a._handleHolder.appendChild(a._handle);a._onmouseoverDelegate=Function.createDelegate(a,a._onmouseover);$addHandler(a._handle,n,a._onmouseoverDelegate);a._onmouseoutDelegate=Function.createDelegate(a,a._onmouseout);$addHandler(a._handle,o,a._onmouseoutDelegate);a._onmousedownDelegate=Function.createDelegate(a,a._onmousedown);$addHandler(a._handle,c,a._onmousedownDelegate);a._onmousemoveDelegate=Function.createDelegate(a,a._onmousemove);a._onmouseupDelegate=Function.createDelegate(a,a._onmouseup);a._onselectstartDelegate=Function.createDelegate(a,a._onselectstart);a._resizeControl(0,0,0,0);a._rememberSize()},dispose:function(){var b=this;if(b._onmouseoverDelegate){$removeHandler(b._handle,n,b._onmouseoverDelegate);b._onmouseoverDelegate=a}if(b._onmouseoutDelegate){$removeHandler(b._handle,o,b._onmouseoutDelegate);b._onmouseoutDelegate=a}if(b._onmousedownDelegate){$removeHandler(b._handle,c,b._onmousedownDelegate);b._onmousedownDelegate=a}if(b._onmousemoveDelegate){b.tracking&&$removeHandler(document,i,b._onmousemoveDelegate);b._onmousemoveDelegate=a}if(b._onmouseupDelegate){b.tracking&&$removeHandler(document,j,b._onmouseupDelegate);b._onmouseupDelegate=a}if(b._onselectstartDelegate){if(b.tracking){$removeHandler(document,k,b._onselectstartDelegate);Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,c,b._onselectstartDelegate)}b._onselectstartDelegate=a}Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(b,"dispose")},_onmouseover:function(){Sys.UI.DomElement.addCssClass(this._frame,this._ResizableCssClass)},_onmouseout:function(){!this._tracking&&Sys.UI.DomElement.removeCssClass(this._frame,this._ResizableCssClass)},_onmousedown:function(a){if(!a)a=event;this._onmousedownImplementation(a.clientX,a.clientY)},_onmousedownImplementation:function(b,d){var a=this;a._tracking=true;a._resizeControl(b,d,0,0);a._lining.style.visibility="visible";$addHandler(document,i,a._onmousemoveDelegate);$addHandler(document,j,a._onmouseupDelegate);$addHandler(document,k,a._onselectstartDelegate);Sys.Browser.agent===Sys.Browser.Opera&&$addHandler(document,c,a._onselectstartDelegate);a.raiseResizeBegin()},_onmousemove:function(a){if(!a)a=event;this._onmousemoveImplementation(a.clientX,a.clientY)},_onmousemoveImplementation:function(b,c){var a=this;if(a._tracking){var d=b-a._lastClientX,e=c-a._lastClientY;a._resizeControl(b,c,d,e)}},_onmouseup:function(){var a=this;a._tracking=false;a._rememberSize();a._lining.style.visibility="hidden";$removeHandler(document,i,a._onmousemoveDelegate);$removeHandler(document,j,a._onmouseupDelegate);$removeHandler(document,k,a._onselectstartDelegate);Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,c,a._onselectstartDelegate);Sys.UI.DomElement.removeCssClass(a._frame,a._ResizableCssClass)},_onselectstart:function(a){a.preventDefault();return false},_resizeControl:function(g,h,i,j){var a=this;a._lastClientX=g;a._lastClientY=h;var d=Math.min(Math.max(a._lining.offsetWidth+i,Math.max(a._MinimumWidth,a._handle.offsetWidth)),a._MaximumWidth),c=Math.min(Math.max(a._lining.offsetHeight+j,Math.max(a._MinimumHeight,a._handle.offsetHeight)),a._MaximumHeight);a._lining.style.width=d+b;a._lining.style.height=c+b;a._frame.style.width=d+b;a._frame.style.height=c+b;var e=a._lining.offsetWidth-a._handle.offsetWidth+a._HandleOffsetX,f=a._lining.offsetHeight-a._handle.offsetHeight+a._HandleOffsetY;a._handle.style.left=e+b;a._handle.style.top=f+b;a.raiseResizing()},_rememberSize:function(){var a=this.get_Size();Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"set_ClientState",[a.width+","+a.height]);this.raiseResize()},_measurementToNumber:function(a){return a.replace(b,"")},get_HandleCssClass:function(){return this._HandleCssClass},set_HandleCssClass:function(b){var a="HandleCssClass";if(this._HandleCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,a);this._HandleCssClass=b;this.raisePropertyChanged(a)},get_ResizableCssClass:function(){return this._ResizableCssClass},set_ResizableCssClass:function(b){var a="ResizableCssClass";if(this._ResizableCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,a);this._ResizableCssClass=b;this.raisePropertyChanged(a)},get_HandleOffsetX:function(){return this._HandleOffsetX},set_HandleOffsetX:function(a){if(this._HandleOffsetX!=a){this._HandleOffsetX=a;this.raisePropertyChanged("HandleOffsetX")}},get_HandleOffsetY:function(){return this._HandleOffsetY},set_HandleOffsetY:function(a){if(this._HandleOffsetY!=a){this._HandleOffsetY=a;this.raisePropertyChanged("HandleOffsetY")}},get_MinimumWidth:function(){return this._MinimumWidth},set_MinimumWidth:function(a){if(this._MinimumWidth!=a){this._MinimumWidth=a;this.raisePropertyChanged("MinimumWidth")}},get_MinimumHeight:function(){return this._MinimumHeight},set_MinimumHeight:function(a){if(this._MinimumHeight!=a){this._MinimumHeight=a;this.raisePropertyChanged("MinimumHeight")}},get_MaximumWidth:function(){return this._MaximumWidth},set_MaximumWidth:function(a){if(this._MaximumWidth!=a){this._MaximumWidth=a;this.raisePropertyChanged("MaximumWidth")}},get_MaximumHeight:function(){return this._MaximumHeight},set_MaximumHeight:function(a){if(this._MaximumHeight!=a){this._MaximumHeight=a;this.raisePropertyChanged("MaximumHeight")}},add_resizing:function(a){this.get_events().addHandler(d,a)},remove_resizing:function(a){this.get_events().removeHandler(d,a)},raiseResizing:function(){var a=this.get_events().getHandler(d);a&&a(this,Sys.EventArgs.Empty)},get_resizing:function(){return this.get_events().getHandler(d)},set_resizing:function(a){if(a&&0 /// /// /// /// (function() { var scriptName = "ExtendedPopup"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.PopupBehavior = function(element) { /// /// The PopupBehavior is used to show/hide an element at a position /// relative to another element /// /// /// The DOM element the behavior is associated with /// Sys.Extended.UI.PopupBehavior.initializeBase(this, [element]); this._x = 0; this._y = 0; this._positioningMode = Sys.Extended.UI.PositioningMode.Absolute; this._parentElement = null; this._parentElementID = null; this._moveHandler = null; this._firstPopup = true; this._originalParent = null; this._visible = false; this._onShow = null; this._onHide = null; this._onShowEndedHandler = Function.createDelegate(this, this._onShowEnded); this._onHideEndedHandler = Function.createDelegate(this, this._onHideEnded); } Sys.Extended.UI.PopupBehavior.prototype = { initialize: function() { /// /// Initialize the PopupBehavior /// Sys.Extended.UI.PopupBehavior.callBaseMethod(this, 'initialize'); this._hidePopup(); this.get_element().style.position = "absolute"; }, dispose: function() { /// /// Dispose the PopupBehavior /// var element = this.get_element(); if (element) { if (this._visible) { this.hide(); } if (this._originalParent) { element.parentNode.removeChild(element); this._originalParent.appendChild(element); this._originalParent = null; } element._hideWindowedElementsIFrame = null; } this._parentElement = null; if (this._onShow && this._onShow.get_animation()) { this._onShow.get_animation().remove_ended(this._onShowEndedHandler); } this._onShow = null; if (this._onHide && this._onHide.get_animation()) { this._onHide.get_animation().remove_ended(this._onHideEndedHandler); } this._onHide = null; Sys.Extended.UI.PopupBehavior.callBaseMethod(this, 'dispose'); }, show: function() { /// /// Show the popup /// if (this._visible) { return; } var eventArgs = new Sys.CancelEventArgs(); this.raiseShowing(eventArgs); if (eventArgs.get_cancel()) { return; } this._visible = true; var element = this.get_element(); $common.setVisible(element, true); this.setupPopup(); if (this._onShow) { $common.setVisible(element, false); this.onShow(); } else { this.raiseShown(Sys.EventArgs.Empty); } }, hide: function() { /// /// Hide the popup /// if (!this._visible) { return; } var eventArgs = new Sys.CancelEventArgs(); this.raiseHiding(eventArgs); if (eventArgs.get_cancel()) { return; } this._visible = false; if (this._onHide) { this.onHide(); } else { this._hidePopup(); this._hideCleanup(); } }, getBounds: function() { /// /// Get the expected bounds of the popup relative to its parent /// /// /// Bounds of the popup relative to its parent /// /// /// The actual final position can only be calculated after it is /// initially set and we can verify it doesn't bleed off the edge /// of the screen. /// var element = this.get_element(); var offsetParent = element.offsetParent || document.documentElement; var diff; var parentBounds; if (this.get_parentElement()) { parentBounds = $common.getBounds(this.get_parentElement()); var offsetParentLocation = $common.getLocation(offsetParent); diff = { x: parentBounds.x - offsetParentLocation.x, y: parentBounds.y - offsetParentLocation.y }; } else { parentBounds = $common.getBounds(offsetParent); diff = { x: 0, y: 0 }; } var width = element.offsetWidth - (element.clientLeft ? element.clientLeft * 2 : 0); var height = element.offsetHeight - (element.clientTop ? element.clientTop * 2 : 0); if (this._firstpopup) { element.style.width = width + "px"; this._firstpopup = false; } var position, pos; switch (this._positioningMode) { case Sys.Extended.UI.PositioningMode.Center: pos = { x: Math.round(parentBounds.width / 2 - width / 2), y: Math.round(parentBounds.height / 2 - height / 2), altX: Math.round(parentBounds.width / 2 - width / 2), altY: Math.round(parentBounds.height / 2 - height / 2) }; break; case Sys.Extended.UI.PositioningMode.BottomLeft: pos = { x: 0, y: parentBounds.height, altX: parentBounds.width - width, altY: 0 - height } break; case Sys.Extended.UI.PositioningMode.BottomRight: pos = { x: parentBounds.width - width, y: parentBounds.height, altX: 0, altY: 0 - height } break; case Sys.Extended.UI.PositioningMode.TopLeft: pos = { x: 0, y: -element.offsetHeight, altX: parentBounds.width - width, altY: parentBounds.height } break; case Sys.Extended.UI.PositioningMode.TopRight: pos = { x: parentBounds.width - width, y: -element.offsetHeight, altX: 0, altY: parentBounds.height } break; case Sys.Extended.UI.PositioningMode.Right: pos = { x: parentBounds.width, y: 0, altX: -element.offsetWidth, altY: parentBounds.height - height } break; case Sys.Extended.UI.PositioningMode.Left: pos = { x: -element.offsetWidth, y: 0, altX: parentBounds.width, altY: parentBounds.height - height } break; default: pos = { x: 0, y: 0, altX: 0, altY: 0 }; } pos.x += this._x + diff.x; pos.altX += this._x + diff.x; pos.y += this._y + diff.y; pos.altY += this._y + diff.y; position = this._verifyPosition(pos, width, height, parentBounds); return new Sys.UI.Bounds(position.x, position.y, width, height); }, _verifyPosition: function(pos, elementWidth, elementHeight, parentBounds) { /// /// Checks whether the popup is entirely visible and attempts to change its position to make it entirely visihle. /// var newX = 0, newY = 0; var windowBounds = this._getWindowBounds(); if (!((pos.x + elementWidth > windowBounds.x + windowBounds.width) || (pos.x < windowBounds.x))) { newX = pos.x; } else { newX = pos.altX; if (pos.altX < windowBounds.x) { if (pos.x > pos.altX) { newX = pos.x; } } else if (windowBounds.width + windowBounds.x - pos.altX < elementWidth) { var xDiff = pos.x > pos.altX ? Math.abs(windowBounds.x - pos.x) : (windowBounds.x - pos.x); if (xDiff < elementWidth - windowBounds.width - windowBounds.x + pos.altX) { newX = pos.x; } } } if (!((pos.y + elementHeight > windowBounds.y + windowBounds.height) || (pos.y < windowBounds.y))) { newY = pos.y; } else { newY = pos.altY; if (pos.altY < windowBounds.y) { if (windowBounds.y - pos.altY > elementHeight - windowBounds.height - windowBounds.y + pos.y) { newY = pos.y; } } else if (windowBounds.height + windowBounds.y - pos.altY < elementHeight) { if (windowBounds.y - pos.y < elementHeight - windowBounds.height - windowBounds.y + pos.altY) { newY = pos.y; } } } return { x: newX, y: newY }; }, _getWindowBounds: function() { var bounds = { x: this._getWindowScrollLeft(), y: this._getWindowScrollTop(), width: this._getWindowWidth(), height: this._getWindowHeight() }; return bounds; }, _getWindowHeight: function() { var windowHeight = 0; if (document.documentElement && document.documentElement.clientHeight) { windowHeight = document.documentElement.clientHeight; } else if (document.body && document.body.clientHeight) { windowHeight = document.body.clientHeight; } return windowHeight; }, _getWindowWidth: function() { var windowWidth = 0; if (document.documentElement && document.documentElement.clientWidth) { windowWidth = document.documentElement.clientWidth; } else if (document.body && document.body.clientWidth) { windowWidth = document.body.clientWidth; } return windowWidth; }, _getWindowScrollTop: function() { var scrollTop = 0; if (typeof (window.pageYOffset) == 'number') { scrollTop = window.pageYOffset; } if (document.body && document.body.scrollTop) { scrollTop = document.body.scrollTop; } else if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; } return scrollTop; }, _getWindowScrollLeft: function() { var scrollLeft = 0; if (typeof (window.pageXOffset) == 'number') { scrollLeft = window.pageXOffset; } else if (document.body && document.body.scrollLeft) { scrollLeft = document.body.scrollLeft; } else if (document.documentElement && document.documentElement.scrollLeft) { scrollLeft = document.documentElement.scrollLeft; } return scrollLeft; }, adjustPopupPosition: function(bounds) { /// /// Adjust the position of the popup after it's originally bet set /// to make sure that it's visible on the page. /// /// /// Original bounds of the parent element /// var element = this.get_element(); if (!bounds) { bounds = this.getBounds(); } var newPosition = $common.getBounds(element); var updateNeeded = false; if (newPosition.x < 0) { bounds.x -= newPosition.x; updateNeeded = true; } if (newPosition.y < 0) { bounds.y -= newPosition.y; updateNeeded = true; } if (updateNeeded) { $common.setLocation(element, bounds); } }, addBackgroundIFrame: function() { /// /// Add an empty IFRAME behind the popup (for IE6 only) so that SELECT, etc., won't /// show through the popup. /// var element = this.get_element(); if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) { var childFrame = element._hideWindowedElementsIFrame; if (!childFrame) { childFrame = document.createElement("iframe"); childFrame.src = "javascript:'';"; childFrame.style.position = "absolute"; childFrame.style.display = "none"; childFrame.scrolling = "no"; childFrame.frameBorder = "0"; childFrame.tabIndex = "-1"; childFrame.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"; element.parentNode.insertBefore(childFrame, element); element._hideWindowedElementsIFrame = childFrame; this._moveHandler = Function.createDelegate(this, this._onMove); Sys.UI.DomEvent.addHandler(element, "move", this._moveHandler); } $common.setBounds(childFrame, $common.getBounds(element)); childFrame.style.left = element.style.left; childFrame.style.top = element.style.top; childFrame.style.display = element.style.display; if (element.currentStyle && element.currentStyle.zIndex) { childFrame.style.zIndex = element.currentStyle.zIndex; } else if (element.style.zIndex) { childFrame.style.zIndex = element.style.zIndex; } } }, setupPopup: function() { /// /// Position the popup relative to its parent /// var element = this.get_element(); var bounds = this.getBounds(); $common.setLocation(element, bounds); this.adjustPopupPosition(bounds); element.style.zIndex = 1000; this.addBackgroundIFrame(); }, _hidePopup: function() { /// /// Internal hide implementation /// var element = this.get_element(); $common.setVisible(element, false); if (element.originalWidth) { element.style.width = element.originalWidth + "px"; element.originalWidth = null; } }, _hideCleanup: function() { /// /// Perform cleanup after hiding the element /// var element = this.get_element(); if (this._moveHandler) { Sys.UI.DomEvent.removeHandler(element, "move", this._moveHandler); this._moveHandler = null; } if (Sys.Browser.agent === Sys.Browser.InternetExplorer) { var childFrame = element._hideWindowedElementsIFrame; if (childFrame) { childFrame.style.display = "none"; } } this.raiseHidden(Sys.EventArgs.Empty); }, _onMove: function() { /// /// Track the popup's movements so the hidden IFrame (IE6 only) can /// be moved along with it /// var element = this.get_element(); if (element._hideWindowedElementsIFrame) { element.parentNode.insertBefore(element._hideWindowedElementsIFrame, element); element._hideWindowedElementsIFrame.style.top = element.style.top; element._hideWindowedElementsIFrame.style.left = element.style.left; } }, get_onShow: function() { /// /// Generic OnShow Animation's JSON definition /// return this._onShow ? this._onShow.get_json() : null; }, set_onShow: function(value) { if (!this._onShow) { this._onShow = new Sys.Extended.UI.Animation.GenericAnimationBehavior(this.get_element()); this._onShow.initialize(); } this._onShow.set_json(value); var animation = this._onShow.get_animation(); if (animation) { animation.add_ended(this._onShowEndedHandler); } this.raisePropertyChanged('onShow'); }, get_onShowBehavior: function() { /// /// Generic OnShow Animation's behavior /// return this._onShow; }, onShow: function() { /// /// Play the OnShow animation /// /// if (this._onShow) { if (this._onHide) { this._onHide.quit(); } this._onShow.play(); } }, _onShowEnded: function() { /// /// Handler for the OnShow Animation's Ended event /// this.adjustPopupPosition(); this.addBackgroundIFrame(); this.raiseShown(Sys.EventArgs.Empty); }, get_onHide: function() { /// /// Generic OnHide Animation's JSON definition /// return this._onHide ? this._onHide.get_json() : null; }, set_onHide: function(value) { if (!this._onHide) { this._onHide = new Sys.Extended.UI.Animation.GenericAnimationBehavior(this.get_element()); this._onHide.initialize(); } this._onHide.set_json(value); var animation = this._onHide.get_animation(); if (animation) { animation.add_ended(this._onHideEndedHandler); } this.raisePropertyChanged('onHide'); }, get_onHideBehavior: function() { /// /// Generic OnHide Animation's behavior /// return this._onHide; }, onHide: function() { /// /// Play the OnHide animation /// /// if (this._onHide) { if (this._onShow) { this._onShow.quit(); } this._onHide.play(); } }, _onHideEnded: function() { /// /// Handler for the OnHide Animation's Ended event /// this._hideCleanup(); }, get_parentElement: function() { /// /// Parent dom element. /// if (!this._parentElement && this._parentElementID) { this.set_parentElement($get(this._parentElementID)); } return this._parentElement; }, set_parentElement: function(element) { this._parentElement = element; this.raisePropertyChanged('parentElement'); }, get_parentElementID: function() { /// /// Parent dom element. /// if (this._parentElement) { return this._parentElement.id } return this._parentElementID; }, set_parentElementID: function(elementID) { this._parentElementID = elementID; if (this.get_isInitialized()) { this.set_parentElement($get(elementID)); } }, get_positioningMode: function() { /// /// Positioning mode. /// return this._positioningMode; }, set_positioningMode: function(mode) { this._positioningMode = mode; this.raisePropertyChanged('positioningMode'); }, get_x: function() { /// /// X coordinate. /// return this._x; }, set_x: function(value) { if (value != this._x) { this._x = value; if (this._visible) { this.setupPopup(); } this.raisePropertyChanged('x'); } }, get_y: function() { /// /// Y coordinate. /// return this._y; }, set_y: function(value) { if (value != this._y) { this._y = value; if (this._visible) { this.setupPopup(); } this.raisePropertyChanged('y'); } }, get_visible: function() { /// /// Whether or not the popup is currently visible /// return this._visible; }, add_showing: function(handler) { /// /// Add an event handler for the showing event /// /// /// Event handler /// /// this.get_events().addHandler('showing', handler); }, remove_showing: function(handler) { /// /// Remove an event handler from the showing event /// /// /// Event handler /// /// this.get_events().removeHandler('showing', handler); }, raiseShowing: function(eventArgs) { /// /// Raise the showing event /// /// /// Event arguments for the showing event /// /// var handler = this.get_events().getHandler('showing'); if (handler) { handler(this, eventArgs); } }, add_shown: function(handler) { /// /// Add an event handler for the shown event /// /// /// Event handler /// /// this.get_events().addHandler('shown', handler); }, remove_shown: function(handler) { /// /// Remove an event handler from the shown event /// /// /// Event handler /// /// this.get_events().removeHandler('shown', handler); }, raiseShown: function(eventArgs) { /// /// Raise the shown event /// /// /// Event arguments for the shown event /// /// var handler = this.get_events().getHandler('shown'); if (handler) { handler(this, eventArgs); } }, add_hiding: function(handler) { /// /// Add an event handler for the hiding event /// /// /// Event handler /// /// this.get_events().addHandler('hiding', handler); }, remove_hiding: function(handler) { /// /// Remove an event handler from the hiding event /// /// /// Event handler /// /// this.get_events().removeHandler('hiding', handler); }, raiseHiding: function(eventArgs) { /// /// Raise the hiding event /// /// /// Event arguments for the hiding event /// /// var handler = this.get_events().getHandler('hiding'); if (handler) { handler(this, eventArgs); } }, add_hidden: function(handler) { /// /// Add an event handler for the hidden event /// /// /// Event handler /// /// this.get_events().addHandler('hidden', handler); }, remove_hidden: function(handler) { /// /// Remove an event handler from the hidden event /// /// /// Event handler /// /// this.get_events().removeHandler('hidden', handler); }, raiseHidden: function(eventArgs) { /// /// Raise the hidden event /// /// /// Event arguments for the hidden event /// /// var handler = this.get_events().getHandler('hidden'); if (handler) { handler(this, eventArgs); } } } Sys.Extended.UI.PopupBehavior.registerClass('Sys.Extended.UI.PopupBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.PopupBehavior, { name: "popup" }); Sys.Extended.UI.PositioningMode = function() { /// /// Positioning mode describing how the popup should be positioned /// relative to its specified parent /// /// /// /// /// /// /// /// /// throw Error.invalidOperation(); } Sys.Extended.UI.PositioningMode.prototype = { Absolute: 0, Center: 1, BottomLeft: 2, BottomRight: 3, TopLeft: 4, TopRight: 5, Right: 6, Left: 7 } Sys.Extended.UI.PositioningMode.registerEnum('Sys.Extended.UI.PositioningMode'); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedAnimations", "ExtendedAnimationBehavior"], execute); } else { execute(); } })(); @// (c) 2010 CodePlex Foundation /// /// /// (function() { var scriptName = "ExtendedMutuallyExclusiveCheckBox"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior = function(element) { /// /// The MutuallyExclusiveCheckBoxBehavior allows only one checkbox in /// a group with the same Key to be checked at a time /// /// /// The DOM Element the behavior is associated with /// Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.initializeBase(this, [element]); this._key = ""; this._clickHandler = Function.createDelegate(this, this._onclick); } Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.prototype = { initialize : function() { /// /// Initialize the behavior /// Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.callBaseMethod(this, 'initialize'); $addHandler(this.get_element(), "click", this._clickHandler); }, dispose : function() { /// /// Dispose the behavior /// if (this._key) { var keys = Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys; var ar = keys[this._key]; Array.remove(ar, this); this._key = null; } if (this._clickHandler) { $removeHandler(this.get_element(), "click", this._clickHandler); this._clickHandler = null; } Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.callBaseMethod(this, 'dispose'); }, get_Key : function() { /// /// The unique key to use to associate checkboxes. This key does not respect INamingContainer renaming. /// return this._key; }, set_Key : function(value) { var keys = Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys; if(value != this._key) { if(this._key) { var ar = keys[this._key]; Array.remove(ar, this._key); } this._key = value; if(value) { var ar = keys[this._key]; if(ar == null) { ar = keys[this._key] = []; } Array.add(ar, this); } } }, _onclick : function() { /// /// Click handler used to ensure only one checkbox in its key is checked /// var element = this.get_element(); var keys = Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys; if(this._key && element.checked) { var ar = keys[this._key]; var t = this; Array.forEach(ar, function(b) { /// /// Uncheck all other checkboxes in the same key group /// /// /// Checkbox in the same key group /// if(b != t) { b.get_element().checked = false; $common.tryFireEvent(b.get_element(), "change"); } }); } this.raiseChecked(new Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs(element, this._key)); }, add_checked : function(handler) { /// /// Add an event handler for the checked event /// /// /// Event handler /// /// this.get_events().addHandler('checked', handler); }, remove_checked : function(handler) { /// /// Remove an event handler from the checked event /// /// /// Event handler /// /// this.get_events().removeHandler('checked', handler); }, raiseChecked : function(eventArgs) { /// /// Raise the checked event /// /// /// Event arguments for the checked event /// /// var handler = this.get_events().getHandler('checked'); if (handler) { handler(this, eventArgs); } } } Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.registerClass('Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior', Sys.Extended.UI.BehaviorBase); Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys = {}; Sys.registerComponent(Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior, { name: "mutuallyExclusiveCheckBox", parameters: ["Key"] }); Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs = function(checkbox, key) { /// /// Event arguments used when the checked event is raised /// /// /// Checkbox that was checked or unchecked /// /// /// The unique key used to associate checkboxes /// Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.initializeBase(this); this._key = key; this._checkbox = checkbox; } Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.prototype = { get_checkbox : function() { /// /// Checkbox that was checked or unchecked /// return this._checkbox; }, get_key : function() { /// /// The unique key used to associate checkboxes /// return this._key; } } Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.registerClass('Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs', Sys.EventArgs); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedBase", "ExtendedCommon"], execute); } else { execute(); } })(); @w// (c) 2010 CodePlex Foundation (function(h,a){var g="string",j=".",o="_readyQueue",n="_domReadyQueue",e=false,b=null,c=true,i="function",f="number",d="undefined",r=function(a){a=a||{};k(arguments,function(b){b&&q(b,function(c,b){a[b]=c})},1);return a},q=function(a,c){for(var b in a)c(a[b],b)},k=function(a,g,j){var e;if(a){a=a!==h&&typeof a.nodeType===d&&(a instanceof Array||typeof a.length===f&&(typeof a.callee===i||a.item&&typeof a.nodeType===d&&!a.addEventListener&&!a.attachEvent))?a:[a];for(var b=j||0,k=a.length;b=0||a.indexOf(d+" ")>=0)){k.push(b);e=c}return e}var b,f,e;if(l&&h(a)&&g)return c;if(!m){a=a||document;var i=a.querySelectorAll||a.getElementsByClassName;if(i){if(a.querySelectorAll)d=j+d;e=i.call(a,d);for(b=0,f=e.length;b0){for(var d=[],c=0;c=f)break;a=Function._validateParameter(i[c],h,j);if(a){a.popStackFrame();return a}}return b};m._validateParameterCount=function(m,g,l){var a,f,d=g.length,h=m.length;if(hd){f=c;for(a=0;a0&&(g=0){b=b.substr(g+1);if(b&&b.charAt(0)==="_")return}b=b.substr(0,1).toLowerCase()+b.substr(1)}if(!c)c={};c.name=b;c.type=d;c.typeName=f;c._isBehavior=e;c=a.components[b]=r(a.components[b],c);var i=a._getCreate(c),h=e?a.ElementSet.prototype:a.create;h[b]=i};a.registerPlugin=function(b){var e=b.name,f=b.functionName||e;a.plugins[e]=r(a.plugins[e],b);var g=b.plugin,d;if(b.global)d=a;else if(b.dom)d=a.ElementSet.prototype;else if(b.components)d=a.ComponentSet.prototype;if(d)d[f]=a._getCreate(b,c)};a._createComp=function(e,m,f){var j=e.type,i=e.parameters||[],l=e._isBehavior,n=l?f[0]:b,c=f[i.length]||{};c=r({},m,c);k(i,function(a,h){var e=typeof a===g?a:a.name,b=f[h];if(typeof b!==d&&typeof c[e]===d)c[e]=b});if(this instanceof a.ElementSet){var h=[];this.each(function(){h.push(a._create(j,c,this))});return new a.ComponentSet(this,h)}else return a._create(j,c)};a._create=function(f,h,c){var e=typeof c;if(e===g)c=a.get(c);var b;a._2Pass(function(){b=e===d?new f:new f(c);l(b,"beginUpdate");a._set(b,h);var g=a.Component;if(!g||!g._register(b))l(b,"endUpdate")||l(b,"initialize")});return b};s.registerInterface=function(d){var b=this;a.__upperCaseTypes[d.toUpperCase()]=b;b.prototype.constructor=b;b.__typeName=d;b.__interface=c;return b};s.resolveInheritance=function(){var a=this;if(a.__basePrototypePending){var e=a.__baseType;e.resolveInheritance();var c=e.prototype,d=a.prototype;for(var b in c)d[b]=d[b]||c[b];delete a.__basePrototypePending}};m.getRootNamespaces=function(){return Array.clone(a.__rootNamespaces)};m.isClass=function(a){return!!(a&&a.__class)};m.isInterface=function(a){return!!(a&&a.__interface)};m.isNamespace=function(a){return!!(a&&a.__namespace)};m.parse=function(d,f){var c;if(f){c=a.__upperCaseTypes[f.getName().toUpperCase()+j+d.toUpperCase()];return c||b}if(!d)return b;var e=Type.__htClasses;if(!e)Type.__htClasses=e={};c=e[d];if(!c){c=h.eval(d);e[d]=c}return c};m.registerNamespace=function(a){Type._registerNamespace(a)};m._registerNamespace=function(g){for(var f=h,e=g.split(j),d=0,k=e.length;d=0};m.dequeue=function(a){return a.shift()};m.forEach=function(b,f,e){for(var a=0,g=b.length;a=0&&b.splice(a,1);return a>=0};m.removeAt=function(a,b){a.splice(b,1)};Type._registerScript("MicrosoftAjaxCore.js");m=a.IDisposable=function(){};m.registerInterface("Sys.IDisposable");m=a.StringBuilder=function(a){this._parts=typeof a!==d&&a!==b&&a!==n?[a.toString()]:[];this._value={};this._len=0};m.prototype={append:function(a){this._parts.push(a);return this},appendLine:function(a){this._parts.push(typeof a===d||a===b||a===n?"\r\n":a+"\r\n");return this},clear:function(){this._parts=[];this._value={};this._len=0},isEmpty:function(){return!this._parts.length||!this.toString()},toString:function(a){var e=this;a=a||n;var c=e._parts;if(e._len!==c.length){e._value={};e._len=c.length}var i=e._value,h=i[a];if(typeof h===d){if(a!==n)for(var f=0;fo){v.agent=v.InternetExplorer;v.version=parseFloat(w.match(/MSIE (\d+\.\d+)/)[1]);if(v.version>7&&document.documentMode>6)v.documentMode=document.documentMode;v.hasDebuggerStatement=c}else if(w.indexOf(" Firefox/")>o){v.agent=v.Firefox;v.version=parseFloat(w.match(/ Firefox\/(\d+\.\d+)/)[1]);v.name="Firefox";v.hasDebuggerStatement=c}else if(w.indexOf(" AppleWebKit/")>o){v.agent=v.Safari;v.version=parseFloat(w.match(/ AppleWebKit\/(\d+(\.\d+)?)/)[1]);v.name="Safari"}else if(w.indexOf("Opera/")>o)v.agent=v.Opera;m=a.EventArgs=function(){};m.registerClass("Sys.EventArgs");a.EventArgs.Empty=new a.EventArgs;m=a.CancelEventArgs=function(){a.CancelEventArgs.initializeBase(this);this._cancel=e};m.prototype={get_cancel:function(){return this._cancel},set_cancel:function(a){this._cancel=a}};m.registerClass("Sys.CancelEventArgs",a.EventArgs);m=a.EventHandlerList=function(){this._list={}};m.prototype={_addHandler:function(b,a){Array.add(this._getEvent(b,c),a)},addHandler:function(b,a){this._addHandler(b,a)},_removeHandler:function(c,b){var a=this._getEvent(c);if(!a)return;Array.remove(a,b)},_removeHandlers:function(b){if(!b)this._list={};else{var a=this._getEvent(b);if(!a)return;a.length=0}},removeHandler:function(b,a){this._removeHandler(b,a)},getHandler:function(c){var a=this._getEvent(c);if(!a||!a.length)return b;a=Array.clone(a);return function(c,d){for(var b=0,e=a.length;b=0;g--){var o=k[g].trim();b=c[o];typeof b!==f&&i.call(d,e.split(",")[g].trim());n|=b}return n}}function G(e){var f=this;if(typeof e===d||e===b)return f.__string;var g=f.prototype,a;if(!f.__flags||e===0){for(a in g)if(g[a]===e)return a}else{var c=f.__sortedValues;if(!c){c=[];for(a in g)c.push({key:a,value:g[a]});c.sort(function(a,b){return a.value-b.value});f.__sortedValues=c}var i=[],j=e;for(a=c.length-1;a>=0;a--){var k=c[a],h=k.value;if(h===0)continue;if((h&e)===h){i.push(k.key);j-=h;if(j===0)break}}if(i.length&&j===0)return i.reverse().join(", ")}return n}m=Type;m.prototype.registerEnum=function(d,f){var b=this;a.__upperCaseTypes[d.toUpperCase()]=b;for(var e in b.prototype)b[e]=b.prototype[e];b.__typeName=d;b.parse=H;b.__string=b.toString();b.toString=G;b.__flags=f;b.__enum=c};m.isEnum=function(a){return!!(a&&a.__enum)};m.isFlags=function(a){return!!(a&&a.__flags)};m=a.CollectionChange=function(h,a,e,c,g){var d=this;d.action=h;if(a)if(!(a instanceof Array))a=[a];d.newItems=a||b;if(typeof e!==f)e=o;d.newStartingIndex=e;if(c)if(!(c instanceof Array))c=[c];d.oldItems=c||b;if(typeof g!==f)g=o;d.oldStartingIndex=g};m.registerClass("Sys.CollectionChange");m=a.NotifyCollectionChangedAction=function(){};m.prototype={add:0,remove:1,reset:2};m.registerEnum("Sys.NotifyCollectionChangedAction");m=a.NotifyCollectionChangedEventArgs=function(b){this._changes=b;a.NotifyCollectionChangedEventArgs.initializeBase(this)};m.prototype={get_changes:function(){return this._changes||[]}};m.registerClass("Sys.NotifyCollectionChangedEventArgs",a.EventArgs);m=a.INotifyPropertyChange=function(){};m.registerInterface("Sys.INotifyPropertyChange");m=a.PropertyChangedEventArgs=function(b){a.PropertyChangedEventArgs.initializeBase(this);this._propertyName=b};m.prototype={get_propertyName:function(){return this._propertyName}};m.registerClass("Sys.PropertyChangedEventArgs",a.EventArgs);m=a.Observer=function(){};m.registerClass("Sys.Observer");m.makeObservable=function(b){var d=b instanceof Array,c=a.Observer;if(b.setValue===c._observeMethods.setValue)return b;c._addMethods(b,c._observeMethods);d&&c._addMethods(b,c._arrayMethods);return b};m._addMethods=function(c,a){for(var b in a)c[b]=a[b]};m._addEventHandler=function(e,b,d){a.Observer._getContext(e,c).events._addHandler(b,d)};m.addEventHandler=function(d,b,c){a.Observer._addEventHandler(d,b,c)};m._removeEventHandler=function(e,b,d){a.Observer._getContext(e,c).events._removeHandler(b,d)};m.removeEventHandler=function(d,b,c){a.Observer._removeEventHandler(d,b,c)};m.clearEventHandlers=function(d,b){a.Observer._getContext(d,c).events._removeHandlers(b)};m.raiseEvent=function(c,f,e){var d=a.Observer._getContext(c);if(!d)return;var b=d.events.getHandler(f);b&&b(c,e||a.EventArgs.Empty)};m.addPropertyChanged=function(c,b){a.Observer._addEventHandler(c,t,b)};m.removePropertyChanged=function(c,b){a.Observer._removeEventHandler(c,t,b)};m.beginUpdate=function(b){a.Observer._getContext(b,c).updating=c};m.endUpdate=function(d){var c=a.Observer._getContext(d);if(!c||!c.updating)return;c.updating=e;var g=c.dirty;c.dirty=e;if(g){if(d instanceof Array){var f=c.changes;c.changes=b;a.Observer.raiseCollectionChanged(d,f)}a.Observer.raisePropertyChanged(d,n)}};m.isUpdating=function(c){var b=a.Observer._getContext(c);return b?b.updating:e};m._setValue=function(e,p,m){for(var f,u,q=e,h=p.split(j),o=0,s=h.length-1;oo&&c9?parseInt(q[2].substring(0,2),a):0}else if(m&&m[0]==n){f=parseInt(q[0],a);p=parseInt(q[1],a);s=n.length>5?parseInt(q[2],a):0}if(f==e||p==e||s==e)k=false;if(!k){MaskedEditSetMessage(b,b.InvalidValueMessage,b.InvalidValueText);MaskedEditSetCssClass(b,b.InvalidValueCssClass)}if(k&&(g!=""||h!="")){var c,i,o,d;if(h!=""){c=e;i=e;o=e;d=h.split(j);l=t.exec(h);m=u.exec(h);if(l&&l[0]==h){r=h.substring(h.length-2).substring(0,1);c=parseInt(d[0],a);if(r.toUpperCase()==v[1].substring(0,1).toUpperCase()){c+=12;if(c==24)c=0}i=parseInt(d[1],a);o=h.length>9?parseInt(d[2].substring(0,2),a):0}else if(m&&m[0]==h){c=parseInt(d[0],a);i=parseInt(d[1],a);o=h.length>5?parseInt(d[2],a):0}k=f>c||f==c&&p>i||f==c&&p==i&&s>=o;if(!k){MaskedEditSetMessage(b,b.MinimumValueMessage,b.MinimumValueText);MaskedEditSetCssClass(b,b.InvalidValueCssClass)}}if(g!=""&&k){c=e;i=e;o=e;d=g.split(j);l=t.exec(g);m=u.exec(g);if(l&&l[0]==g){r=g.substring(g.length-2).substring(0,1);c=parseInt(d[0],a);if(r.toUpperCase()==v[1].substring(0,1).toUpperCase()){c+=12;if(c==24)c=0}i=parseInt(d[1],a);o=g.length>9?parseInt(d[2].substring(0,2),a):0}else if(m&&m[0]==g){c=parseInt(d[0],a);i=parseInt(d[1],a);o=g.length>5?parseInt(d[2],a):0}k=f0&&i>0&&c>0&&(k<=([,31,28,31,30,31,30,31,31,30,31,30,31])[i]||k==29&&i==2&&c%4==0&&(c%100>0||c%400==0))}if(!f){MaskedEditSetMessage(a,a.InvalidValueMessage,a.InvalidValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}if(f&&(n!=""||o!="")){var g,j=-1,h=-1,b=-1;if(o!=""){g=o.split(m);j=parseInt(g[e.indexOf("D")],d);h=parseInt(g[e.indexOf("M")],d);b=parseInt(g[e.indexOf("Y")],d);if(b<100)b=parseInt(b+a.Century,d);else if(b<999)b+=parseInt(a.Century.substring(0,1)+b,d);f=j>0&&h>0&&b>0&&c>b||c==b&&i>h||c==b&&i==h&&k>=j;if(!f){MaskedEditSetMessage(a,a.MinimumValueMessage,a.MinimumValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}}if(f&&n!=""){g=n.split(m);j=parseInt(g[e.indexOf("D")],d);h=parseInt(g[e.indexOf("M")],d);b=parseInt(g[e.indexOf("Y")],d);if(b<100)b=parseInt(b+a.Century,d);else if(b<999)b+=parseInt(a.Century.substring(0,1)+b,d);f=j>0&&h>0&&b>0&&cb){c=i;MaskedEditSetMessage(a,a.MaximumValueMessage,a.MaximumValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}}if(c&&a.MinimumValue!=f){b=parseInt(a.MinimumValue,10);if(b==(isNaN(b)?d:b))if(h0?e[2]:"0")+"."+e[4];else k=(e[2].length>0?e[2]:"0")+"."+e[4];h=parseFloat(k);c=h==(isNaN(h)?d:h)}if(!c){MaskedEditSetMessage(a,a.InvalidValueMessage,a.InvalidValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}if(c){if(a.MaximumValue!=f){b=parseFloat(a.MaximumValue);if(b==(isNaN(b)?d:b))if(h>b){c=i;MaskedEditSetMessage(a,a.MaximumValueMessage,a.MaximumValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}}if(c&&a.MinimumValue!=f){b=parseFloat(a.MinimumValue);if(b==(isNaN(b)?d:b))if(hc){b=d;MaskedEditSetMessage(a,a.MaximumValueMessage,a.MaximumValueText);MaskedEditSetCssClass(a,a.InvalidValueCssClass)}}if(b&&a.MinimumValue!="")if(a.MinimumValue.match(j)!=e){c=parseInt(a.MinimumValue,10);if(c==(isNaN(c)?e:c))if(g.length0){var g=a.toLowerCase().split(",")[0].replace(/^(['"])/,"").replace(/(['"])$/,"");for(b=0;b /// /// /// /// (function () { var scriptName = "ExtendedDropShadow"; var e = null; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.DropShadowBehavior = function (element) { /// /// The DropShadowBehavior is used to attach a drop shadow to the element /// /// /// DOM Element the behavior is associated with /// Sys.Extended.UI.DropShadowBehavior.initializeBase(this, [element]); this._opacity = 1.0; this._width = 5; this._shadowDiv = null; this._trackPosition = null; this._trackPositionDelay = 50; this._timer = null; this._tickHandler = null; this._roundedBehavior = null; this._shadowRoundedBehavior = null; this._rounded = false; this._radius = 5; this._lastX = null; this._lastY = null; this._lastW = null; this._lastH = null; } Sys.Extended.UI.DropShadowBehavior.prototype = { initialize: function () { /// /// Initialize the behavior /// Sys.Extended.UI.DropShadowBehavior.callBaseMethod(this, 'initialize'); e = this.get_element(); if ($common.getCurrentStyle(e, 'position', e.style.position) != "absolute") { e.style.position = "relative"; } if (this._rounded) { this.setupRounded(); } if (this._trackPosition) { this.startTimer(); } this.setShadow(); }, dispose: function () { /// /// Dispose the behavior /// this.stopTimer(); this.disposeShadowDiv(); Sys.Extended.UI.DropShadowBehavior.callBaseMethod(this, 'dispose'); }, buildShadowDiv: function () { /// /// Create the div that we'll use as the shadow /// e = this.get_element(); if (!this.get_isInitialized() || !e || !this._width) return; if (e.style.boxShadow == undefined && e.style.MozBoxShadow == undefined && e.style.WebkitBoxShadow == undefined) { var div = document.createElement("DIV"); div.style.backgroundColor = "black"; div.style.position = "absolute"; if (e.id) { div.id = e.id + "_DropShadow"; } this._shadowDiv = div; e.parentNode.appendChild(div); if (this._rounded) { this._shadowDiv.style.height = Math.max(0, e.offsetHeight - (2 * this._radius)) + "px"; if (!this._shadowRoundedBehavior) { this._shadowRoundedBehavior = $create(Sys.Extended.UI.RoundedCornersBehavior, { "Radius": this._radius }, null, null, this._shadowDiv); } else { this._shadowRoundedBehavior.set_Radius(this._radius); } } else if (this._shadowRoundedBehavior) { this._shadowRoundedBehavior.set_Radius(0); } if (this._opacity != 1.0) { this.setupOpacity(); } this.setShadow(false, true); this.updateZIndex(); } }, disposeShadowDiv: function () { /// /// Dispose of the div we use as the shadow /// if (this._shadowDiv) { if (this._shadowDiv.parentNode) { this._shadowDiv.parentNode.removeChild(this._shadowDiv); } this._shadowDiv = null; } if (this._shadowRoundedBehavior) { this._shadowRoundedBehavior.dispose(); this._shadowRoundedBehavior = null; } }, onTimerTick: function () { /// /// Timer's tick handler that is used to position the shadow when its target moves /// this.setShadow(); }, startTimer: function () { /// /// Start the timer (and hence start tracking the bounds of the target element) /// if (!this._timer) { if (!this._tickHandler) { this._tickHandler = Function.createDelegate(this, this.onTimerTick); } this._timer = new Sys.Timer(); this._timer.set_interval(this._trackPositionDelay); this._timer.add_tick(this._tickHandler); this._timer.set_enabled(true); } }, stopTimer: function () { /// /// Stop the timer (and hence stop tracking the bounds of the target element) /// if (this._timer) { this._timer.remove_tick(this._tickHandler); this._timer.set_enabled(false); this._timer.dispose(); this._timer = null; } }, setShadow: function (force, norecurse) { /// /// This function does the heavy lifting of positioning and sizing the shadow. /// It caches values to avoid extra work - it's called on a timer so we need to /// keep it light weight. /// /// /// Whether to force the bounds change /// /// /// Whether to recurse if we need to recreate the shadow div /// e = this.get_element(); if (!this.get_isInitialized() || !e || (!this._width && !force)) return; if (e.style.boxShadow == undefined && e.style.MozBoxShadow == undefined && e.style.WebkitBoxShadow == undefined) { var existingShadow = this._shadowDiv; if (!existingShadow) { this.buildShadowDiv(); } var location = { x: e.offsetLeft, y: e.offsetTop }; if (force || this._lastX != location.x || this._lastY != location.y || !existingShadow) { this._lastX = location.x; this._lastY = location.y; var w = this.get_Width(); location.x += w; location.y += w; $common.setLocation(this._shadowDiv, location); } var h = e.offsetHeight; var w = e.offsetWidth; if (force || h != this._lastH || w != this._lastW || !existingShadow) { this._lastW = w; this._lastH = h; if (!this._rounded || !existingShadow || norecurse) { this._shadowDiv.style.width = w + "px"; this._shadowDiv.style.height = h + "px"; } else { this.disposeShadowDiv(); this.setShadow(); } } if (this._shadowDiv) { this._shadowDiv.style.visibility = $common.getCurrentStyle(e, 'visibility'); } } else { var boxShadowVals; if (this._opacity == ".25") boxShadowVals = this._width + "px " + this._width + "px " + this._width + "px " + "#D3D3D3"; else if (this._opacity == ".5") boxShadowVals = this._width + "px " + this._width + "px " + this._width + "px " + "#778899"; else if (this._opacity == ".75") boxShadowVals = this._width + "px " + this._width + "px " + this._width + "px " + "#808080"; else boxShadowVals = this._width + "px " + this._width + "px " + this._width + "px " + "#000"; if (e.style.boxShadow != undefined) { e.style.boxShadow = boxShadowVals; } else if (e.style.MozBoxShadow != undefined) { e.style.MozBoxShadow = boxShadowVals; } else if (e.style.WebkitBoxShadow != undefined) { e.style.WebkitBoxShadow = boxShadowVals; } } }, setupOpacity: function () { /// /// Set the opacity of the shadow div /// if (this.get_isInitialized() && this._shadowDiv) { $common.setElementOpacity(this._shadowDiv, this._opacity); } }, setupRounded: function () { /// /// Demand create and initialize the RoundedCornersBehavior /// if (!this._roundedBehavior && this._rounded) { this._roundedBehavior = $create(Sys.Extended.UI.RoundedCornersBehavior, null, null, null, this.get_element()); } if (this._roundedBehavior) { this._roundedBehavior.set_Radius(this._rounded ? this._radius : 0); } }, updateZIndex: function () { /// /// Update the z-Index so the shadow div remains behind the target element /// if (!this._shadowDiv) return; var e = this.get_element(); var targetZIndex = e.style.zIndex; var shadowZIndex = this._shadowDiv.style.zIndex; if (shadowZIndex && targetZIndex && targetZIndex > shadowZIndex) { return; } else { targetZIndex = Math.max(2, targetZIndex); shadowZIndex = targetZIndex - 1; } e.style.zIndex = targetZIndex; this._shadowDiv.style.zIndex = shadowZIndex; }, updateRoundedCorners: function () { /// /// Update the RoundedCorndersBehavior and recreate the shadow div so its corners are rounded as well /// if (this.get_isInitialized()) { this.setupRounded(); this.disposeShadowDiv(); this.setShadow(); } }, get_Opacity: function () { /// /// The opacity of the drop shadow, from 0 (fully transparent) to 1.0 (fully opaque). The default value is .5. /// return this._opacity; }, set_Opacity: function (value) { if (this._opacity != value) { this._opacity = value; this.setShadow(); this.setupOpacity(); this.raisePropertyChanged('Opacity'); } }, get_Rounded: function () { /// /// Whether or not the corners of the target and drop shadow should be rounded /// return this._rounded; }, set_Rounded: function (value) { if (value != this._rounded) { this._rounded = value; this.updateRoundedCorners(); this.raisePropertyChanged('Rounded'); } }, get_Radius: function () { /// /// Radius, in pixels, of the rounded corners /// return this._radius; }, set_Radius: function (value) { if (value != this._radius) { this._radius = value; this.updateRoundedCorners(); this.raisePropertyChanged('Radius'); } }, get_Width: function () { /// /// Width in pixels of the drop shadow. The default value is 5 pixels. /// return this._width; }, set_Width: function (value) { if (value != this._width) { this._width = value; if (this._shadowDiv) { $common.setVisible(this._shadowDiv, value > 0); } this.setShadow(true); this.raisePropertyChanged('Width'); } }, get_TrackPositionDelay: function () { /// /// Length of the timer interval used when tracking the position of the target /// return this._trackPositionDelay; }, set_TrackPositionDelay: function (value) { if (value != this._trackPositionDelay) { this._trackPositionDelay = value; if (!e) e = this.get_element(); if (e.style.boxShadow == undefined && e.style.MozBoxShadow == undefined && e.style.WebkitBoxShadow == undefined) { if (this._trackPosition) { this.stopTimer(); this.startTimer(); } this.raisePropertyChanged('TrackPositionDelay'); } } }, get_TrackPosition: function () { /// /// Whether the drop shadow should track the position of the panel it is attached to. Use this if the panel is absolutely positioned or will otherwise move. /// return this._trackPosition; }, set_TrackPosition: function (value) { if (value != this._trackPosition) { this._trackPosition = value; if (!e) e = this.get_element(); if (e.style.boxShadow == undefined && e.style.MozBoxShadow == undefined && e.style.WebkitBoxShadow == undefined) { if (this.get_element()) { if (value) { this.startTimer(); } else { this.stopTimer(); } } this.raisePropertyChanged('TrackPosition'); } } } } Sys.Extended.UI.DropShadowBehavior.registerClass('Sys.Extended.UI.DropShadowBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.DropShadowBehavior, { name: "dropShadow" }); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedBase", "ExtendedCommon", "ExtendedTimer", "ExtendedRoundedCorners"], execute); } else { execute(); } })(); s/// (c) 2010 CodePlex Foundation (function(){var b="ExtendedDropDown";function a(){var j="hoverOut",i="hoverOver",h="hidden",g="hiding",f="popup",e="shown",d="showing",c=true,b=false,a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.DropDownBehavior=function(e){var c=this;Sys.Extended.UI.DropDownBehavior.initializeBase(c,[e]);c._dropDownControl=a;c._highlightBorderColor="#2353B2";c._highlightBackgroundColor="#FFF3DB";c._dropArrowBackgroundColor="#C6E1FF";c._dropArrowImageUrl=a;if(Sys.loader){var d=Sys.loader.basePath;if(d){if(d.charAt(d.length-1)!=="/")d+="/";c._dropArrowImageUrl=d+"extended/dropdown/drop-arrow.gif"}}c._dropArrowWidth="16px";c._oldBackgroundColor=a;c._dropFrame=a;c._dropArrow=a;c._dropArrowImage=a;c._dropWrapper=a;c._isOpen=b;c._isOver=b;c._wasClicked=a;c._dropWrapperHoverBehavior=a;c._dropPopupPopupBehavior=a;c._onShowJson=a;c._onHideJson=a;c._dropDownControl$delegates={click:Function.createDelegate(c,c._dropDownControl_onclick),contextmenu:Function.createDelegate(c,c._dropDownControl_oncontextmenu)};c._dropFrame$delegates={click:Function.createDelegate(c,c._dropFrame_onclick),contextmenu:Function.createDelegate(c,c._dropFrame_oncontextmenu)};c._dropWrapper$delegates={click:Function.createDelegate(c,c._dropWrapper_onclick),contextmenu:Function.createDelegate(c,c._dropWrapper_oncontextmenu)};c._document$delegates={click:Function.createDelegate(c,c._document_onclick),contextmenu:Function.createDelegate(c,c._document_oncontextmenu)};c._dropWrapperHoverBehavior$delegates={hover:Function.createDelegate(c,c._dropWrapperHoverBehavior_onhover),unhover:Function.createDelegate(c,c._dropWrapperHoverBehavior_onunhover)}};Sys.Extended.UI.DropDownBehavior.prototype={initialize:function(){var h="_dropWrapper",g="ajax__dropdown_arrow",f="ajax__dropdown_frame_line",e="div",d=this;Sys.Extended.UI.DropDownBehavior.callBaseMethod(d,"initialize");var i=d.get_element(),k=i.parentNode;d._dropDownControl==a&&$common.createElementFromTemplate({parent:k,nameTable:d,name:"_dropDownControl",nodeName:e,visible:b,cssClasses:d._dropDownControl?a:["ajax__dropdown_panel"],properties:{__GENERATED:c}});$addHandlers(d._dropDownControl,d._dropDownControl$delegates);var j={};if(d._dropArrowImageUrl)j.src=d._dropArrowImageUrl;$common.createElementFromTemplate({parent:k,nameTable:d,name:"_dropFrame",nodeName:"span",visible:b,children:[{name:"_dropFrameTop",nodeName:e,cssClasses:[f]},{name:"_dropFrameRight",nodeName:e,cssClasses:[f]},{name:"_dropFrameBottom",nodeName:e,cssClasses:[f]},{name:"_dropFrameLeft",nodeName:e,cssClasses:[f]},{name:"_dropArrow",nodeName:e,cssClasses:!d._dropArrowImageUrl?[g,"ajax__dropdown_arrow_image"]:[g],properties:{style:{width:d._dropArrowWidth,backgroundColor:d._dropArrowBackgroundColor}},events:d._dropFrame$delegates,children:[{name:"_dropArrowWrapper",nodeName:e,visible:!!d._dropArrowImageUrl,cssClasses:["ajax__dropdown_arrow_wrapper"],children:[{name:"_dropArrowImage",nodeName:"img",properties:j}]}]}]});$common.createElementFromTemplate({parent:a,nameTable:d,name:h,nodeName:"span",properties:{id:i.id+h,style:{cursor:"default"}},events:d._dropWrapper$delegates,content:i});d._dropPopupPopupBehavior=$create(Sys.Extended.UI.PopupBehavior,{positioningMode:Sys.Extended.UI.PositioningMode.BottomRight,parentElement:i,y:-1},a,a,d._dropDownControl);d._onShowJson&&d._dropPopupPopupBehavior.set_onShow(d._onShowJson);d._onHideJson&&d._dropPopupPopupBehavior.set_onHide(d._onHideJson);d._dropWrapperHoverBehavior=$create(Sys.Extended.UI.HoverBehavior,{hoverElement:d._dropFrame},d._dropWrapperHoverBehavior$delegates,a,d._dropWrapper);$addHandlers(document,d._document$delegates)},dispose:function(){var c=this,d=c.get_element();if(c._isOpen){c.hide();c.unhover();c._isOpen=b}$common.removeHandlers(document,c._document$delegates);c._onShowJson=a;c._onHideJson=a;if(c._dropPopupPopupBehavior){c._dropPopupPopupBehavior.dispose();c._dropPopupPopupBehavior=a}if(c._dropWrapperHoverBehavior){c._dropWrapperHoverBehavior.dispose();c._dropWrapperHoverBehavior=a}if(c._dropFrame){$common.removeElement(c._dropFrame);c._dropFrame=a;c._dropFrameTop=a;c._dropFrameRight=a;c._dropFrameBottom=a;c._dropFrameLeft=a;c._dropArrow=a;c._dropArrowWrapper=a;c._dropArrowImage=a}if(c._dropWrapper){$common.removeHandlers(c._dropWrapper,c._dropWrapper$delegates);$common.unwrapElement(d,c._dropWrapper);c._dropWrapper=a}if(c._dropDownControl){$common.removeHandlers(c._dropDownControl,c._dropDownControl$delegates);c._dropDownControl.__GENERATED&&$common.removeElement(c._dropDownControl);c._dropDownControl=a}Sys.Extended.UI.DropDownBehavior.callBaseMethod(c,"dispose")},hover:function(){var a=this,e=a.get_element();if(!a._isOver){a._isOver=c;a.raiseHoverOver(Sys.EventArgs.Empty);var d=$common.getBounds(e);$common.setLocation(a._dropFrame,{x:0,y:0});$common.setVisible(a._dropFrame,c);var f=$common.getLocation(a._dropFrame);$common.setVisible(a._dropFrame,b);d.x-=f.x;d.y-=f.y;$common.setBounds(a._dropFrameTop,{x:d.x,y:d.y,width:d.width,height:1});$common.setBounds(a._dropFrameRight,{x:d.x+d.width-1,y:d.y,width:1,height:d.height});$common.setBounds(a._dropFrameBottom,{x:d.x,y:d.y+d.height-1,width:d.width,height:1});$common.setBounds(a._dropFrameLeft,{x:d.x,y:d.y,width:1,height:d.height});$common.setBounds(a._dropArrow,{x:d.x+d.width-17,y:d.y+1,width:16,height:d.height-2});a._dropFrameTop.style.backgroundColor=a._highlightBorderColor;a._dropFrameRight.style.backgroundColor=a._highlightBorderColor;a._dropFrameBottom.style.backgroundColor=a._highlightBorderColor;a._dropFrameLeft.style.backgroundColor=a._highlightBorderColor;$common.setVisible(a._dropFrame,c);if(!a._oldBackgroundColor)a._oldBackgroundColor=$common.getCurrentStyle(e,"backgroundColor");e.style.backgroundColor=a._highlightBackgroundColor}},unhover:function(){var c=this,d=c.get_element();if(c._isOver||!c._isOpen){c._isOver=b;if(!c._isOpen){$common.setVisible(c._dropFrame,b);if(c._oldBackgroundColor){d.style.backgroundColor=c._oldBackgroundColor;c._oldBackgroundColor=a}else d.style.backgroundColor="transparent"}c.raiseHoverOut(Sys.EventArgs.Empty)}},show:function(){var a=this;if(!a._isOpen){a.hover();var b=new Sys.CancelEventArgs;a.raiseShowing(b);a.raisePopup(b);if(b.get_cancel())return;a._isOpen=c;a.populate();(!a._dynamicPopulateBehavior||a._dynamicPopulateBehavior._populated&&a._cacheDynamicResults)&&a._showPopup()}},_showPopup:function(){this._dropPopupPopupBehavior.show();this.raiseShown(Sys.EventArgs.Empty)},hide:function(){var a=this;if(a._isOpen){var c=new Sys.CancelEventArgs;a.raiseHiding(c);if(c.get_cancel())return;a._isOpen=b;a._dropPopupPopupBehavior.hide();a.raiseHidden(Sys.EventArgs.Empty)}},_dropWrapperHoverBehavior_onhover:function(){this.hover()},_dropWrapperHoverBehavior_onunhover:function(){this.unhover()},_dropWrapper_onclick:function(b){var a=this;if(b.target.tagName!="A"){if(!a._isOpen)a.show();else a.hide();a._wasClicked=c}},_dropWrapper_oncontextmenu:function(a){if(a.target.tagName!="A"){this._wasClicked=c;a.preventDefault();this.show()}},_dropFrame_onclick:function(){var a=this;if(!a._isOpen)a.show();else a.hide();a._wasClicked=c},_dropFrame_oncontextmenu:function(a){this._wasClicked=c;a.preventDefault();this.show()},_dropDownControl_onclick:function(){},_dropDownControl_oncontextmenu:function(a){this._wasClicked=c;a.preventDefault()},_document_onclick:function(){var a=this;if(a._wasClicked)a._wasClicked=b;else if(a._isOpen){a.hide();a.unhover()}},_document_oncontextmenu:function(){var a=this;if(a._wasClicked)a._wasClicked=b;else if(a._isOpen){a.hide();a.unhover()}},_onPopulated:function(b,a){Sys.Extended.UI.DropDownBehavior.callBaseMethod(this,"_onPopulated",[b,a]);this._isOpen&&this._showPopup()},get_onShow:function(){return this._dropPopupPopupBehavior?this._dropPopupPopupBehavior.get_onShow():this._onShowJson},set_onShow:function(b){var a=this;if(a._dropPopupPopupBehavior)a._dropPopupPopupBehavior.set_onShow(b);else a._onShowJson=b;a.raisePropertyChanged("onShow")},get_onShowBehavior:function(){return this._dropPopupPopupBehavior?this._dropPopupPopupBehavior.get_onShowBehavior():a},onShow:function(){this._dropPopupPopupBehavior&&this._dropPopupPopupBehavior.onShow()},get_onHide:function(){return this._dropPopupPopupBehavior?this._dropPopupPopupBehavior.get_onHide():this._onHideJson},set_onHide:function(b){var a=this;if(a._dropPopupPopupBehavior)a._dropPopupPopupBehavior.set_onHide(b);else a._onHideJson=b;a.raisePropertyChanged("onHide")},get_onHideBehavior:function(){return this._dropPopupPopupBehavior?this._dropPopupPopupBehavior.get_onHideBehavior():a},onHide:function(){this._dropPopupPopupBehavior&&this._dropPopupPopupBehavior.onHide()},get_dropDownControl:function(){return this._dropDownControl},set_dropDownControl:function(a){if(this._dropDownControl!=a){this._dropDownControl=a;this.raisePropertyChanged("dropDownControl")}},get_highlightBorderColor:function(){return this._highlightBorderColor},set_highlightBorderColor:function(a){if(this._highlightBorderColor!=a){this._highlightBorderColor=a;this.raisePropertyChanged("highlightBorderColor")}},get_highlightBackgroundColor:function(){return this._highlightBackgroundColor},set_highlightBackgroundColor:function(b){var a=this;if(a._highlightBackgroundColor!=b){a._highlightBackgroundColor=b;if(a.get_isInitialized()&&a._isOpen)a._dropWrapper.style.backgroundColor=b;a.raisePropertyChanged("highlightBackgroundColor")}},get_dropArrowBackgroundColor:function(){return this._dropArrowBackgroundColor},set_dropArrowBackgroundColor:function(b){var a=this;if(a._dropArrowBackgroundColor!=b){a._dropArrowBackgroundColor=b;if(a.get_isInitialized())a._dropArrow.style.backgroundColor=b;a.raisePropertyChanged("dropArrowBackgroundColor")}},get_dropArrowImageUrl:function(){return this._dropArrowImageUrl},set_dropArrowImageUrl:function(b){var a=this;if(a._dropArrowImageUrl!=b){a._dropArrowImageUrl=b;if(a.get_isInitialized()){if(a._dropArrow.className){a._dropArrow.className="";a._dropArrowWrapper.style.display="block"}a._dropArrowImage.src=b}a.raisePropertyChanged("dropArrowImageUrl")}},get_dropArrowWidth:function(){return this._dropArrowWidth},set_dropArrowWidth:function(b){var a=this;if(a._dropArrowWidth!=b){a._dropArrowWidth=b;if(a.get_isInitialized())a._dropArrow.style.width=b;a.raisePropertyChanged("dropArrowWidth")}},get_isOver:function(){return this._isOver},get_isOpen:function(){return this._isOpen},add_showing:function(a){this.get_events().addHandler(d,a)},remove_showing:function(a){this.get_events().removeHandler(d,a)},raiseShowing:function(b){var a=this.get_events().getHandler(d);a&&a(this,b)},add_shown:function(a){this.get_events().addHandler(e,a)},remove_shown:function(a){this.get_events().removeHandler(e,a)},raiseShown:function(b){var a=this.get_events().getHandler(e);a&&a(this,b)},add_popup:function(a){this.get_events().addHandler(f,a)},remove_popup:function(a){this.get_events().removeHandler(f,a)},raisePopup:function(b){var a=this.get_events().getHandler(f);a&&a(this,b)},add_hiding:function(a){this.get_events().addHandler(g,a)},remove_hiding:function(a){this.get_events().removeHandler(g,a)},raiseHiding:function(b){var a=this.get_events().getHandler(g);a&&a(this,b)},add_hidden:function(a){this.get_events().addHandler(h,a)},remove_hidden:function(a){this.get_events().removeHandler(h,a)},raiseHidden:function(b){var a=this.get_events().getHandler(h);a&&a(this,b)},add_hoverOver:function(a){this.get_events().addHandler(i,a)},remove_hoverOver:function(a){this.get_events().removeHandler(i,a)},raiseHoverOver:function(b){var a=this.get_events().getHandler(i);a&&a(this,b)},add_hoverOut:function(a){this.get_events().addHandler(j,a)},remove_hoverOut:function(a){this.get_events().removeHandler(j,a)},raiseHoverOut:function(b){var a=this.get_events().getHandler(j);a&&a(this,b)}};Sys.Extended.UI.DropDownBehavior.registerClass("Sys.Extended.UI.DropDownBehavior",Sys.Extended.UI.DynamicPopulateBehaviorBase);Sys.registerComponent(Sys.Extended.UI.DropDownBehavior,{name:"dropDown"})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedDynamicPopulate","ExtendedAnimationBehavior","ExtendedPopup","ExtendedHover"],a);else a()})();[B// (c) 2010 CodePlex Foundation (function(){var b="ExtendedDragDrop";function a(){var m="keypress",l="dragleave",k="dragenter",j="dragstart",h="dragover",g="mousemove",f="mouseup",i="initialize",e=false,b=true,d="dragStop",c="dragStart",a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.IDragSource=function(){};Sys.Extended.UI.IDragSource.prototype={get_dragDataType:function(){throw Error.notImplemented();},getDragData:function(){throw Error.notImplemented();},get_dragMode:function(){throw Error.notImplemented();},onDragStart:function(){throw Error.notImplemented();},onDrag:function(){throw Error.notImplemented();},onDragEnd:function(){throw Error.notImplemented();}};Sys.Extended.UI.IDragSource.registerInterface("Sys.Extended.UI.IDragSource");Sys.Extended.UI.IDropTarget=function(){};Sys.Extended.UI.IDropTarget.prototype={get_dropTargetElement:function(){throw Error.notImplemented();},canDrop:function(){throw Error.notImplemented();},drop:function(){throw Error.notImplemented();},onDragEnterTarget:function(){throw Error.notImplemented();},onDragLeaveTarget:function(){throw Error.notImplemented();},onDragInTarget:function(){throw Error.notImplemented();}};Sys.Extended.UI.IDropTarget.registerInterface("Sys.Extended.UI.IDropTarget");Sys.Extended.UI.DragMode=function(){throw Error.invalidOperation();};Sys.Extended.UI.DragMode.prototype={Copy:0,Move:1};Sys.Extended.UI.DragMode.registerEnum("Sys.Extended.UI.DragMode");Sys.Extended.UI.DragDropEventArgs=function(c,a,b){this._dragMode=c;this._dataType=a;this._data=b};Sys.Extended.UI.DragDropEventArgs.prototype={get_dragMode:function(){return this._dragMode||a},get_dragDataType:function(){return this._dataType||a},get_dragData:function(){return this._data||a}};Sys.Extended.UI.DragDropEventArgs.registerClass("Sys.Extended.UI.DragDropEventArgs");Sys.Extended.UI._DragDropManager=function(){this._instance=a;this._events=a};Sys.Extended.UI._DragDropManager.prototype={add_dragStart:function(a){this.get_events().addHandler(c,a)},remove_dragStart:function(a){this.get_events().removeHandler(c,a)},get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_dragStop:function(a){this.get_events().addHandler(d,a)},remove_dragStop:function(a){this.get_events().removeHandler(d,a)},_getInstance:function(){var a=this;if(!a._instance){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)a._instance=new Sys.Extended.UI.IEDragDropManager;else a._instance=new Sys.Extended.UI.GenericDragDropManager;a._instance.initialize();a._instance.add_dragStart(Function.createDelegate(a,a._raiseDragStart));a._instance.add_dragStop(Function.createDelegate(a,a._raiseDragStop))}return a._instance},startDragDrop:function(b,c,d,a){this._getInstance().startDragDrop(b,c,d,a)},registerDropTarget:function(a){this._getInstance().registerDropTarget(a)},unregisterDropTarget:function(a){this._getInstance().unregisterDropTarget(a)},dispose:function(){delete this._events;Sys.Application.unregisterDisposableObject(this);Sys.Application.removeComponent(this)},_raiseDragStart:function(d,b){var a=this.get_events().getHandler(c);a&&a(this,b)},_raiseDragStop:function(c,b){var a=this.get_events().getHandler(d);a&&a(this,b)}};Sys.Extended.UI._DragDropManager.registerClass("Sys.Extended.UI._DragDropManager");Sys.Extended.UI.DragDropManager=new Sys.Extended.UI._DragDropManager;Sys.Extended.UI.IEDragDropManager=function(){var c=this;Sys.Extended.UI.IEDragDropManager.initializeBase(c);c._dropTargets=a;c._radius=10;c._useBuiltInDragAndDropFunctions=b;c._activeDragVisual=a;c._activeContext=a;c._activeDragSource=a;c._underlyingTarget=a;c._oldOffset=a;c._potentialTarget=a;c._isDragging=e;c._mouseUpHandler=a;c._documentMouseMoveHandler=a;c._documentDragOverHandler=a;c._dragStartHandler=a;c._mouseMoveHandler=a;c._dragEnterHandler=a;c._dragLeaveHandler=a;c._dragOverHandler=a;c._dropHandler=a};Sys.Extended.UI.IEDragDropManager.prototype={add_dragStart:function(a){this.get_events().addHandler(c,a)},remove_dragStart:function(a){this.get_events().removeHandler(c,a)},add_dragStop:function(a){this.get_events().addHandler(d,a)},remove_dragStop:function(a){this.get_events().removeHandler(d,a)},initialize:function(){var a=this;Sys.Extended.UI.IEDragDropManager.callBaseMethod(a,i);a._mouseUpHandler=Function.createDelegate(a,a._onMouseUp);a._documentMouseMoveHandler=Function.createDelegate(a,a._onDocumentMouseMove);a._documentDragOverHandler=Function.createDelegate(a,a._onDocumentDragOver);a._dragStartHandler=Function.createDelegate(a,a._onDragStart);a._mouseMoveHandler=Function.createDelegate(a,a._onMouseMove);a._dragEnterHandler=Function.createDelegate(a,a._onDragEnter);a._dragLeaveHandler=Function.createDelegate(a,a._onDragLeave);a._dragOverHandler=Function.createDelegate(a,a._onDragOver);a._dropHandler=Function.createDelegate(a,a._onDrop)},dispose:function(){var b=this;if(b._dropTargets){for(var c=0;c0){a._scrollDeltaX=a._scrollDeltaY=0;if(d.clientXc.width-a._scrollEdgeConst)a._scrollDeltaX=a._scrollByConst;if(d.clientYc.height-a._scrollEdgeConst)a._scrollDeltaY=a._scrollByConst;if(a._scrollDeltaX!=0||a._scrollDeltaY!=0)a._scroller.set_enabled(b);else a._scroller.set_enabled(e)}},_onScrollerTick:function(){var d=document.body.scrollLeft,f=document.body.scrollTop;window.scrollBy(this._scrollDeltaX,this._scrollDeltaY);var c=document.body.scrollLeft,e=document.body.scrollTop,a=this._activeDragVisual,b={x:parseInt(a.style.left)+(c-d),y:parseInt(a.style.top)+(e-f)};$common.setLocation(a,b)}};Sys.Extended.UI.GenericDragDropManager.registerClass("Sys.Extended.UI.GenericDragDropManager",Sys.Extended.UI.IEDragDropManager)}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedTimer","ExtendedCommon"],a);else a()})();1GIF89a,<<!,0 ;1GIF89a,<<!,0 ;rGIF89a~~~}}}zzzkkkiiifffaaa[[[XXXLLLIIIHHHFFFCCC<<<;;;555!A,πAA,588669  %;-" +; -) ?Ƣ0&2*.$ڐ34(1$>'4/#`G҆=7@@QwQŏ!e b(40eKHbʜIR8s ϟ@J4;GIF89a.a9jEv[;tF}LNC~KNsꃤrRޛѡQwwu{鐼[u냱ㆮۚν)^abV냪Ҟcvj삼ѵ!,q H9vÇ bŋ3^H$ ' <@2ɐ4a8!!8[ `@{:JbK >y´bÇ@DxqH̓h,PQ0!)Q*@`kYQJS|fj of̐#0hTbnG 4˜Ǥ@L7|6PHPtsr`@pЀ `fffTTS!7,pH,rl 3JUN+PVD@Yv N ,.V[F6 v&6.LB5("  .351*4.11444.--)-.Ê/30 /03܊25GA;GIF89a̾ķsssmmmYYYMMMIII@@@???333!.,@pH,rl6I Zի5rC@L+wVJ^֪*(+!|Pc$%+$ Pn -,n-Pn zP"c&#*' P PPB PGA;9GIF89a ɷнXXXװ!, PIմͻȲ 򭟰L#͒x3B<; =?=. @ (L !BA P= *  Q J8 A@@ &J!C -^ R"h԰qÆ4f(0 R2 a<p ʓV졻x;.ajax__multi_slider_default .outer_rail_vertical{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_v_rail_outer.gif")%>) repeat-y;width:22px;height:150px;} .ajax__multi_slider_default .inner_rail_vertical{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_v_rail.gif")%>) repeat-y;width:22px;z-index:100;} .ajax__multi_slider_default .inner_rail_horizontal{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_h_rail.gif")%>) repeat-x;height:22px;z-index:100;} .ajax__multi_slider_default .outer_rail_horizontal{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_h_rail_outer.gif")%>) repeat-x;height:22px;width:150px;} .ajax__multi_slider_default .handle_horizontal{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_h_handle.gif")%>) no-repeat;height:22px;width:10px;z-index:200;} .ajax__multi_slider_default .handle_horizontal_hover{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_h_handle_hover.gif")%>) no-repeat;height:22px;width:10px;z-index:200;} .ajax__multi_slider_default .handle_horizontal_down{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_h_handle_down.gif")%>) no-repeat;height:22px;width:10px;z-index:200;} .ajax__multi_slider_default .handle_vertical{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_v_handle.gif")%>) no-repeat;height:10px;width:22px;z-index:200;} .ajax__multi_slider_default .handle_vertical_hover{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_v_handle_hover.gif")%>) no-repeat;height:10px;width:22px;z-index:200;} .ajax__multi_slider_default .handle_vertical_down{position:absolute;background:url(<%=WebResource("MultiHandleSlider.Images.slider_v_handle_down.gif")%>) no-repeat;height:10px;width:22px;z-index:200;}+PNG  IHDR#"Յ` pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FVIDATxڬmn6wǙr;MФQ b+䰴~( rK ЂB)"(j4IiGz.ۗݙgg.ٽ5B 6ZwR*ip9Ҟn`b03"mjUq0@X=zhyRJgΜ)h"Q\NڵkfCH@ /?7ZqtfS7 ]?ϟ?رcQ`?gbnnW2;;{cHr? k6ql6#PP+++>8O@ `ҥK\p+K ~EŋݻU0:/4a!B8RɧzM470i}bm<6OҥK?}5\.v)%G6!:˲ɓ'h&$j4_u]RT޷m۶iyv{SĿ׏0>>g}wBS.1۷Զm\Ek ]ѡn#`ǎr-ciqZ) lRJ<}T*"RrR/CVWW)J$Iٳgy "'nH3۷o'4;O$2ضM6wAk)%?Q9j; :~wm۾5tF4#T*E:ƶmlfpp#GtP( :z2dppp333 *GѮ]O$y⡜dزe \T*eYlݺL&C"(RJᦛnbǎ?dǣ[3]ץ^cY}}}Q۷/R 4d2m~$V 5a`Xxudx7(V.+++r98{,[n@)ŋ<}ۋ>(ˬQQJH$Bn] F0^+!#)hZ޽ILLLG199B=|ߧ^S뛝 ],?)hq]u;ra$IZ-nf^{5R=z{5eE&EOvazcaa9"{o,Qfm… ,//=0o Y(f?+RJ È`QJ1;;Ç_GkO?͹s碍|g}}q<0V\reX,.j:Z"wcwq{% àfa h4ViDT4Z ###>}g~uuM`(uHk3I](L&CRAJI*¶mLIJ,* J)z{{,+#RJl_|VWW z}ÖTw#$TjJJ*.2ar9jƉ%Q'fggg~/B(:F+)uquB000{rfy0@3*Jr8p0YAّd'?.2jq4I&dY<~!oVv{*2P ZP7f&y˗oH}e ">z!r4MR+++|Ǽ۔傔Z8l30嚯5366Ry5$ RG?ZN,..J)rpx-q@:avUׯwOȒ 4J0@VkZ_qiƤs 0CCCfRg{#;X8 ; rrq6oCظ=kˮ֏eZHL20uMq*)kF 0iv+ ?J 6 aK| =YIENDB` PNG  IHDR2 Y pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxOdqGةS]K#RDdFSL4u);LaiRt4:Fď#FDDDty׏Oz~ o\I`Wq "CXjbN~b̝xIV0eNz;yJ"0մH ɐ+K ?qFZXJ${&F";c._stopButtonValue="[]";c._slideShowServicePath=location.pathname;c._slideShowServiceMethod=a;c._contextKey=a;c._useContextKey=b;c._playInterval=3e3;c._tickHandler=a;c._loop=b;c._autoPlay=b;c._inPlayMode=b;c._elementImage=a;c._bNext=a;c._bPrevious=a;c._currentIndex=-1;c._currentValue=a;c._imageDescriptionLabel=a;c._imageTitleLabel=a;c._bPlay=a;c._slides=a;c._timer=a;c._currentImageElement=a;c._images=a;c._cachedImageIndex=-1;c._clickNextHandler=a;c._clickPreviousHandler=a;c._clickPlayHandler=a;c._tickHandler=a;c._imageLoadedHandler=a};Sys.Extended.UI.SlideShowBehavior.prototype={initialize:function(){var a=this;Sys.Extended.UI.SlideShowBehavior.callBaseMethod(a,"initialize");var b=a.get_element();a._elementImage=b;a._currentImageElement=document.createElement("IMG");a._currentImageElement.style.display="none";document.body.appendChild(a._currentImageElement);var c=document.createElement("DIV");b.parentNode.insertBefore(c,b);b.parentNode.removeChild(b);c.appendChild(b);c.align="center";a.controlsSetup();if(a._bNext){a._clickNextHandler=Function.createDelegate(a,a._onClickNext);$addHandler(a._bNext,d,a._clickNextHandler)}if(a._bPrevious){a._clickPreviousHandler=Function.createDelegate(a,a._onClickPrevious);$addHandler(a._bPrevious,d,a._clickPreviousHandler)}if(a._bPlay){a._clickPlayHandler=Function.createDelegate(a,a._onClickPlay);$addHandler(a._bPlay,d,a._clickPlayHandler)}a._imageLoadedHandler=Function.createDelegate(a,a._onImageLoaded);$addHandler(a._currentImageElement,"load",a._imageLoadedHandler);a._slideShowInit()},dispose:function(){var b=this;if(b._clickNextHandler){$removeHandler(b._bNext,d,b._clickNextHandler);b._clickNextHandler=a}if(b._clickPreviousHandler){$removeHandler(b._bPrevious,d,b._clickPreviousHandler);b._clickPreviousHandler=a}if(b._clickPlayHandler){$removeHandler(b._bPlay,d,b._clickPlayHandler);b._clickPlayHandler=a}if(b._imageLoadedHandler){$removeHandler(b._currentImageElement,"load",b._imageLoadedHandler);b._imageLoadedHandler=a}if(b._timer){b._timer.dispose();b._timer=a}Sys.Extended.UI.SlideShowBehavior.callBaseMethod(b,"dispose")},add_slideChanged:function(a){this.get_events().addHandler(e,a)},remove_slideChanged:function(a){this.get_events().removeHandler(e,a)},raiseSlideChanged:function(a){var b=this.get_events().getHandler(e);if(b){if(!a)a=Sys.EventArgs.Empty;b(this,a)}},add_slideChanging:function(a){this.get_events().addHandler(f,a)},remove_slideChanging:function(a){this.get_events().removeHandler(f,a)},raiseSlideChanging:function(d,e){var c=this.get_events().getHandler(f);if(c){var a=new Sys.Extended.UI.SlideShowEventArgs(d,e,this._currentIndex);c(this,a);return a.get_cancel()}return b},get_contextKey:function(){return this._contextKey},set_contextKey:function(b){var a=this;if(a._contextKey!=b){a._contextKey=b;a.set_useContextKey(c);a._elementImage&&a._slideShowInit();a.raisePropertyChanged("contextKey")}},get_useContextKey:function(){return this._useContextKey},set_useContextKey:function(a){if(this._useContextKey!=a){this._useContextKey=a;this.raisePropertyChanged("useContextKey")}},controlsSetup:function(){var a=this;if(a._previousButtonID)a._bPrevious=document.getElementById(a._previousButtonID);if(a._imageDescriptionLabelID)a._imageDescriptionLabel=document.getElementById(a._imageDescriptionLabelID);if(a._imageTitleLabelID)a._imageTitleLabel=document.getElementById(a._imageTitleLabelID);if(a._nextButtonID)a._bNext=document.getElementById(a._nextButtonID);if(a._playButtonID){a._bPlay=document.getElementById(a._playButtonID);a._bPlay.value=a._playButtonValue}},resetButtons:function(){var a=this;if(!a._loop){if(a._slides.length<=a._currentIndex+1){if(a._bNext)a._bNext.disabled=c;if(a._bPlay)a._bPlay.disabled=c;if(a._bPrevious)a._bPrevious.disabled=b;a._inPlayMode=b;a._timer&&a._timer.set_enabled(b);if(a._bPlay)a._bPlay.value=a._playButtonValue}else{if(a._bNext)a._bNext.disabled=b;if(a._bPlay)a._bPlay.disabled=b}if(a._currentIndex<=0){if(a._bPrevious)a._bPrevious.disabled=c}else if(a._bPrevious)a._bPrevious.disabled=b}else if(a._slides.length==0){if(a._bPrevious)a._bPrevious.disabled=c;if(a._bNext)a._bNext.disabled=c;if(a._bPlay)a._bPlay.disabled=c}if(a._inPlayMode){a._timer.set_enabled(b);a._timer.set_enabled(c)}},resetSlideShowButtonState:function(){var a=this;if(a._inPlayMode){if(a._bPlay)a._bPlay.value=a._stopButtonValue}else{a.resetButtons();if(a._bPlay)a._bPlay.value=a._playButtonValue}},setCurrentImage:function(){var a=this;if(a._slides[a._currentIndex])a._currentImageElement.src=a._slides[a._currentIndex].ImagePath;else a._currentImageElement.src="";Sys.Browser.agent==Sys.Browser.Opera&&a._onImageLoaded(c)},updateImage:function(b){var a=this;if(b){if(a.raiseSlideChanging(a._currentValue,b))return;a._currentValue=b;a._elementImage.src=b.ImagePath;a._elementImage.alt=b.Name;if(a._imageDescriptionLabel)a._imageDescriptionLabel.innerHTML=b.Description?b.Description:"";if(a._imageTitleLabel)a._imageTitleLabel.innerHTML=b.Name?b.Name:"";a.raiseSlideChanged(b);a.resetButtons()}},get_imageDescriptionLabelID:function(){return this._imageDescriptionLabelID},set_imageDescriptionLabelID:function(a){if(this._imageDescriptionLabelID!=a){this._imageDescriptionLabelID=a;this.raisePropertyChanged("imageDescriptionLabelID")}},get_imageTitleLabelID:function(){return this._imageTitleLabelID},set_imageTitleLabelID:function(a){if(this._imageTitleLabelID!=a){this._imageTitleLabelID=a;this.raisePropertyChanged("imageTitleLabelID")}},get_nextButtonID:function(){return this._nextButtonID},set_nextButtonID:function(a){if(this._nextButtonID!=a){this._nextButtonID=a;this.raisePropertyChanged("nextButtonID")}},get_playButtonID:function(){return this._playButtonID},set_playButtonID:function(a){if(this._playButtonID!=a){this._playButtonID=a;this.raisePropertyChanged("playButtonID")}},get_playButtonText:function(){return this._playButtonValue},set_playButtonText:function(a){if(this._playButtonValue!=a){this._playButtonValue=a;this.raisePropertyChanged("playButtonText")}},get_stopButtonText:function(){return this._stopButtonValue},set_stopButtonText:function(a){if(this._stopButtonValue!=a){this._stopButtonValue=a;this.raisePropertyChanged("stopButtonText")}},get_playInterval:function(){return this._playInterval},set_playInterval:function(a){if(this._playInterval!=a){this._playInterval=a;this.raisePropertyChanged("playInterval")}},get_previousButtonID:function(){return this._previousButtonID},set_previousButtonID:function(a){if(this._previousButtonID!=a){this._previousButtonID=a;this.raisePropertyChanged("previousButtonID")}},get_slideShowServicePath:function(){return this._slideShowServicePath},set_slideShowServicePath:function(a){if(this._slideShowServicePath!=a){this._slideShowServicePath=a;this.raisePropertyChanged("slideShowServicePath")}},get_slideShowServiceMethod:function(){return this._slideShowServiceMethod},set_slideShowServiceMethod:function(a){if(this._slideShowServiceMethod!=a){this._slideShowServiceMethod=a;this.raisePropertyChanged("slideShowServiceMethod")}},get_loop:function(){return this._loop},set_loop:function(a){if(this._loop!=a){this._loop=a;this.raisePropertyChanged("loop")}},get_autoPlay:function(){return this._autoPlay},set_autoPlay:function(a){if(this._autoPlay!=a){this._autoPlay=a;this.raisePropertyChanged("autoPlay")}},_onClickNext:function(a){a.preventDefault();a.stopPropagation();this._clickNext()},_onImageLoaded:function(){var a=this;a.updateImage(a._slides[a._currentIndex]);a.resetButtons();a._cacheImages()},_clickNext:function(){var a=this;if(a._slides){if(a._currentIndex+1=0)--a._currentIndex;else if(a._loop)a._currentIndex=a._slides.length-1;else return b;a.setCurrentImage();return c}return b},_onClickPlay:function(a){a.preventDefault();a.stopPropagation();this._play()},_play:function(){var a=this;if(a._inPlayMode){a._inPlayMode=b;a._timer.set_enabled(b);a.resetSlideShowButtonState()}else{a._inPlayMode=c;if(!a._timer){a._timer=new Sys.Timer;a._timer.set_interval(a._playInterval);a._tickHandler=Function.createDelegate(a,a._onPlay);a._timer.add_tick(a._tickHandler)}a.resetSlideShowButtonState();a._timer.set_enabled(c)}},_onPlay:function(){var a=this;if(a._slides)if(a._currentIndex+1= this.minLevel && level <= this.maxLevel && x >= 0 && y >= 0 && x < numTiles.x && y < numTiles.y; } } Sys.Extended.UI.Seadragon.TileSource.registerClass('Sys.Extended.UI.Seadragon.TileSource', null, Sys.IDisposable); :// (c) 2010 CodePlex Foundation Type.registerNamespace("Sys.Extended.UI");Type.registerNamespace("Seadragon");Sys.Extended.UI.Seadragon.Strings={Errors:{Failure:"Sorry, but Seadragon Ajax can't run on your browser!\nPlease try using IE 7 or Firefox 3.\n",Dzc:"Sorry, we don't support Deep Zoom Collections!",Dzi:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Xml:"Hmm, this doesn't appear to be a valid Deep Zoom Image.",Empty:"You asked us to open nothing, so we did just that.",ImageFormat:"Sorry, we don't support {0}-based Deep Zoom Images.",Security:"It looks like a security restriction stopped us from loading this Deep Zoom Image.",Status:"This space unintentionally left blank ({0} {1}).",Unknown:"Whoops, something inexplicably went wrong. Sorry!"},Messages:{Loading:"Loading..."},Tooltips:{FullPage:"Toggle full page",Home:"Go home",ZoomIn:"Zoom in",ZoomOut:"Zoom out"},getString:function(e){for(var c=e.split("."),a=Sys.Extended.UI.Seadragon.Strings,b=0;b=a.imageLoaderLimit)return false;var c=Seadragon.Utils.createCallback(null,Function.createDelegate(a,a._onComplete),b),d=new Sys.Extended.UI.Seadragon.Job(e,c);a._downloading++;d.start();return true}};Sys.Extended.UI.Seadragon.ImageLoader.registerClass("Sys.Extended.UI.Seadragon.ImageLoader",null,Sys.IDisposable);7Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.RepeatDirection=function(){throw Error.invalidOperation();};Sys.Extended.UI.RepeatDirection.prototype={Vertical:0,Horizontal:1};Sys.Extended.UI.RepeatDirection.registerEnum("Sys.Extended.UI.RepeatDirection");Sys.Extended.UI.DragDropList=function(c){var b=null,a=this;Sys.Extended.UI.DragDropList.initializeBase(a,[c]);a._acceptedDataTypes=[];a._isDragging=b;a._dataType=b;a._dragMode=Sys.Extended.UI.DragMode.Move;a._dragVisual=b;a._direction=Sys.Extended.UI.RepeatDirection.Vertical;a._emptyTemplate=b;a._emptyTemplateInstance=b;a._dropCueTemplate=b;a._dropCueTemplateInstance=b;a._floatContainerInstance=b;a._originalParent=b;a._originalNextSibling=b;a._originalZIndex=b;a._currentContext=b;a._data=b};Sys.Extended.UI.DragDropList.IsValidDataType=function(a){return a&&typeof a=="string"&&a.length>=4?a.substring(0,4)==="HTML":false};Sys.Extended.UI.DragDropList.prototype={get_data:function(){return this._data},set_data:function(a){this._data=a},initialize:function(){var a=this;Sys.Extended.UI.DragDropList.callBaseMethod(a,"initialize");a.get_element().__dragDropList=a;Sys.Extended.UI.DragDropManager.registerDropTarget(a)},startDragDrop:function(d,c,b){var a=this;if(!a._isDragging){a._isDragging=true;a._currentContext=c;if(!b)b=a.createDragVisual(d);else a._dragVisual=b;Sys.Extended.UI.DragDropManager.startDragDrop(a,b,c,!(Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version>7&&Sys.Browser.documentMode!=0))}},createDragVisual:function(b){var a=this;if(a._dragMode===Sys.Extended.UI.DragMode.Copy)a._dragVisual=b.cloneNode(true);else a._dragVisual=b;var e=Sys.Extended.UI.DragDropManager._getInstance().getScrollOffset(b,true);a._dragVisual.preDragWidth=a._dragVisual.style.width;a._dragVisual.preDragHeight=a._dragVisual.style.height;a._dragVisual.style.width=b.offsetWidth+"px";a._dragVisual.style.height=b.offsetHeight+"px";a._dragVisual.style.opacity="0.4";a._dragVisual.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4);";a._originalZIndex=a._dragVisual.style.zIndex;a._dragVisual.style.zIndex=99999;a._originalParent=a._dragVisual.parentNode;a._originalNextSibling=Sys.Extended.UI.DragDropManager._getInstance().getNextSibling(a._dragVisual);var f=$common.getLocation(b),c=a._getFloatContainer();$common.setLocation(c,f);Sys.Extended.UI.DragDropManager._getInstance().hasParent(a._dragVisual)&&a._dragVisual.parentNode.removeChild(a._dragVisual);c.appendChild(a._dragVisual);var d=Sys.Extended.UI.DragDropManager._getInstance().getScrollOffset(b,true);if(e.x!==d.x||e.y!==d.y){var h=Sys.Extended.UI.DragDropManager._getInstance().subtractPoints(e,d),g=Sys.Extended.UI.DragDropManager._getInstance().subtractPoints(f,h);$common.setLocation(c,g)}return c},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){this._emptyTemplate=a},get_dragDataType:function(){return this._dataType},set_dragDataType:function(a){this._dataType=a},getDragData:function(a){return a},get_dragMode:function(){return this._dragMode},set_dragMode:function(a){this._dragMode=a},dispose:function(){Sys.Extended.UI.DragDropManager.unregisterDropTarget(this);this.get_element().__dragDropList=null;Sys.Extended.UI.DragDropList.callBaseMethod(this,"dispose")},onDragStart:function(){this._validate()},onDrag:function(){},onDragEnd:function(c){var b=null,a=this;if(a._floatContainerInstance){if(a._dragMode===Sys.Extended.UI.DragMode.Copy)a._floatContainerInstance.removeChild(a._dragVisual);else{a._dragVisual.style.opacity="0.999";a._dragVisual.style.filter="";a._dragVisual.style.zIndex=a._originalZIndex?a._originalZIndex:0;if(a._dragVisual.preDragWidth!=b){a._dragVisual.style.width=a._dragVisual.preDragWidth;a._dragVisual.preDragWidth=b}if(a._dragVisual.preDragHeight!=b){a._dragVisual.style.height=a._dragVisual.preDragHeight;a._dragVisual.preDragHeight=b}if(c){a._dragVisual.parentNode.removeChild(a._dragVisual);if(a._originalNextSibling!=b)a._originalParent.insertBefore(a._dragVisual,a._originalNextSibling);else a._originalParent.appendChild(a._dragVisual)}else a._dragVisual.parentNode===a._floatContainerInstance&&a._dragVisual.parentNode.removeChild(a._dragVisual)}document.body.removeChild(a._floatContainerInstance)}else a._dragVisual.parentNode.removeChild(a._dragVisual);if(!c&&a._data&&a._dragMode===Sys.Extended.UI.DragMode.Move){var d=a.getDragData(a._currentContext);a._data&&d&&Array.remove(a._data,d)}a._isDragging=false;a._validate()},get_direction:function(){return this._direction},set_direction:function(a){this._direction=a},get_acceptedDataTypes:function(){return this._acceptedDataTypes},set_acceptedDataTypes:function(a){if(typeof a=="string")this._acceptedDataTypes=a.split(",");else this._acceptedDataTypes=a},get_dropCueTemplate:function(){return this._dropCueTemplate},set_dropCueTemplate:function(a){this._dropCueTemplate=a},get_dropTargetElement:function(){return this.get_element()},canDrop:function(c,b){for(var a=0;a0)c=false;a._setEmptyTemplateVisible(c)},_setEmptyTemplateVisible:function(b){var a=this;if(a._emptyTemplate)if(b)if(!a._emptyTemplateInstance)a._emptyTemplateInstance=a._emptyTemplate.createInstance(a.get_element()).instanceElement;else!Sys.Extended.UI.DragDropManager._getInstance().hasParent(a._emptyTemplateInstance)&&a.get_element().appendChild(a._emptyTemplateInstance);else a._emptyTemplateInstance&&Sys.Extended.UI.DragDropManager._getInstance().hasParent(a._emptyTemplateInstance)&&a.get_element().removeChild(a._emptyTemplateInstance)},_getFloatContainer:function(){var a=this;if(!a._floatContainerInstance){a._floatContainerInstance=document.createElement(a.get_element().tagName);var b="0px 0px 0px 0px";a._floatContainerInstance.style.position="absolute";a._floatContainerInstance.style.padding=b;a._floatContainerInstance.style.margin=b;a._floatContainerInstance.className="dragVisualContainer";document.body.appendChild(a._floatContainerInstance)}else!Sys.Extended.UI.DragDropManager._getInstance().hasParent(a._floatContainerInstance)&&document.body.appendChild(a._floatContainerInstance);return a._floatContainerInstance}};Sys.Extended.UI.DragDropList.registerClass("Sys.Extended.UI.DragDropList",Sys.Extended.UI.BehaviorBase,Sys.Extended.UI.IDragSource,Sys.Extended.UI.IDropTarget,Sys.IDisposable);function callbackSuccessStub(c,d){var a=d.split(":"),e=a[0],b=$find(e);b&&b._onCallbackSuccess(c,a[1])}function callbackErrorStub(c,d){var a=d.split(":"),e=a[0],b=$find(e);alert("error");b&&b._onCallbackError(c,a[1])}Sys.Extended.UI.DragDropWatcher=function(c){var b=null,a=this;Sys.Extended.UI.DragDropWatcher.initializeBase(a,[c]);a._childList=[];a._inProgressDrops={};a._postbackCode=b;a._callbackCssStyle=b;a._argReplaceString=b;a._argContextString=b;a._argErrorString=b;a._argSuccessString=b};Sys.Extended.UI.DragDropWatcher.prototype={dispose:function(){Sys.Extended.UI.DragDropWatcher.callBaseMethod(this,"dispose")},initialize:function(){Sys.Extended.UI.DragDropWatcher.callBaseMethod(this,"initialize");this._saveChildOrder()},add_reorderComplete:function(a){this.get_events().addHandler("reorderComplete",a)},remove_reorderComplete:function(a){this.get_events().removeHandler("reorderComplete",a)},raiseReorderComplete:function(){var a=this.get_events().getHandler("reorderComplete");a&&a(this,Sys.EventArgs.Empty)},findChild:function(f,e){for(var c=0,d=f.childNodes,b=0;b0)return false;var d=Sys.Extended.UI.DragDropWatcher.callBaseMethod(b,"canDrop",[i,h,f]);if(d){for(var g=$common.getBounds(f),e,c=false,j=b.get_element(),a=j.firstChild;a!=null&&!c;a=a.nextSibling){if(!a.id)continue;e=$common.getBounds(a);if(g.y<=e.y)break;c=a.id.lastIndexOf("Insert",a.id.length-6)!=-1}d=!c}return d},drop:function(g,f,e){var a=this;Sys.Extended.UI.DragDropWatcher.callBaseMethod(a,"drop",[g,f,e]);var b=e.id;if(!a._postbackCode||!b)return;var c=a.findChild(a.get_element(),b);Sys.Debug.assert(c!=-1,String.format(Sys.Extended.UI.Resources.ReorderList_DropWatcherBehavior_NoChild,b));var d=a._getSavedChildIndex(b);if(c!=-1&&c!=d){a._saveChildOrder();a.doPostBack(b,c,d)}},_setupDropState:function(a,c,d){if(a){var b=$get(a);this._inProgressDrops[a]={oldCss:b.className,newIndex:c,oldIndex:d};if(this._callbackCssStyle)b.className=this._callbackCssStyle}},_onDropCallback:function(a){var b=this;if(a){b.set_ClientState("true");var c=b._inProgressDrops[a];if(c){var d=$get(a);if(b._callbackCssStyle)d.className=c.oldCss;delete b._inProgressDrops[a]}return c}},doPostBack:function(c,d,e){var a=this,g=a._inProgressDrops[c];if(g)return;var f="reorder:"+c+":"+e.toString()+":"+d.toString(),b=a._postbackCode.replace(a._argReplaceString,f);if(a._argSuccessString)b=b.replace(a._argSuccessString,"callbackSuccessStub");if(a._argErrorString)b=b.replace(a._argErrorString,"callbackErrorStub");if(a._argContextString)b=b.replace(a._argContextString,a.get_id()+":"+c);a._setupDropState(c,d,e);window.setTimeout(b,0)},_onCallbackSuccess:function(a,b){if(a&&a.length>0)this._onCallbackError(a,b);else{this._onDropCallback(b);this.raiseReorderComplete()}},_onCallbackError:function(b,c){var a=this._onDropCallback(c);if(a.oldIndex||a.newIndex){this._saveChildOrder();this.doReorder(a.newIndex,a.oldIndex,true)}alert(String.format(Sys.Extended.UI.Resources.ReorderList_DropWatcherBehavior_CallbackError,b))},doReorder:function(b,a,h){var c=this,f=c.get_element(),e=c._childList;if(b>=0&&e.length>b&&b!=a){var d=$get(e[b]),j=c._inProgressDrops[d.id];if(j)return;if(d){if(a>b)a++;var i=a>=e.length;try{f.removeChild(d)}catch(f){}if(i)f.appendChild(d);else{var g=$get(e[a]);f.insertBefore(d,g)}if(!h)c.doPostBack(d.id,a,b);else{c._saveChildOrder();c.raiseReorderComplete()}}}},getItem:function(a){!this._childList&&this._saveChildOrder();return this._childList[a]},_getSavedChildIndex:function(b){if(this._childList&&b)for(var a=0;a"); if (this._cssPath.length > 0) { html.append(""); } html.append(""); if (this._autoDimensions) { html.append("
"); } html.append(this._initialContent); if (this._autoDimensions) { html.append("
"); } html.append(""); this._doc.write(html.toString()); this._doc.close(); this.isLoaded = false; this._afterReload(); }, _afterReload: function() { var contentWindow = this._iframe.contentWindow; var popup = this; this.isLoaded = contentWindow.__loaded__; if (!(popup._doc.body && popup._doc.body.innerHTML)) { this.isLoaded = false; } if (!this.isLoaded) { setTimeout(function() { popup._afterReload() }, 10); // waiting for loading return; } this.isLoaded = false; contentWindow.popupMediator = {}; contentWindow.popupMediator.registeredFields = this._registeredFields; contentWindow.popupMediator.registeredHandlers = this._registeredHandlers; contentWindow.popupMediator.get_callMethodByName = function(name) { var handlers = contentWindow.popupMediator.registeredHandlers; for (var i = 0; i < handlers.length; i++) { var handler = handlers[i]; if (handler.name == name) { return handler.callMethod; } } return null; }; contentWindow.popupMediator.set_callMethodByName = function(name, value) { var handlers = contentWindow.popupMediator.registeredHandlers; for (var i = 0; i < handlers.length; i++) { var handler = handlers[i]; if (handler.name == name) { handler.callMethod = value; } } }; contentWindow.popupMediator.getField = function(name) { var registeredFields = contentWindow.popupMediator.registeredFields; for (var i = 0; i < registeredFields.length; i++) { var registeredField = registeredFields[i]; if (registeredField.name == name) { return contentWindow.document.getElementById(registeredField.clientID); } } return null; }; contentWindow.Sys = Sys; for (var i = 0; i < this._registeredHandlers.length; i++) { $find(this._registeredHandlers[i].clientID).activate(contentWindow.document.getElementById(this._registeredHandlers[i].clientID)); } if (Sys.Extended.UI.HTMLEditor.isIE) { popup._doc.onselectstart = function() { var event = popup._iframe.contentWindow.event; var tagName = event.srcElement.tagName.toUpperCase(); if (tagName == "INPUT" || tagName == "TEXTAREA") return true; return false; }; } else { popup._doc.onmousedown = function disableselect(e) { var tagName = e.target.tagName.toUpperCase(); if (tagName == "INPUT" || tagName == "TEXTAREA" || tagName == "SELECT") return true; if (Sys.Extended.UI.HTMLEditor.isSafari) if (tagName == "TABLE" || tagName == "TR" || tagName == "TD" || tagName == "DIV") return true; return false; }; var aInp = popup._doc.getElementsByTagName('input'); for (var i = 0; i < aInp.length; i++) { aInp[i].setAttribute('autocomplete', 'off') } } if (this._autoDimensions) { popup._iframe.style.height = "1000px"; popup._iframe.style.width = "1000px"; setTimeout(function() { popup._iframe.style.height = popup._doc.body.firstChild.offsetHeight + "px"; popup._iframe.style.width = popup._doc.body.firstChild.offsetWidth + "px"; popup.isLoaded = true; popup.isLoading = false; }, 0); } else { popup.isLoaded = true; popup.isLoading = false; } }, _onDocumentLoaded: function(callback) { var popup = this; if (!this.isLoaded) { setTimeout(function() { popup._onDocumentLoaded(callback) }, 10); // waiting for loading return; } this.isLoaded = true; callback(this._iframe.contentWindow); }, initialize: function() { this.__appLoaded__ = false; Sys.Extended.UI.HTMLEditor.Popups.Popup.callBaseMethod(this, "initialize"); Sys.Application.add_load(this._app_onload$delegate); }, dispose: function() { Sys.Application.remove_load(this._app_onload$delegate); if (this.isOpened) { this.close(); } Sys.Extended.UI.HTMLEditor.Popups.Popup.callBaseMethod(this, "dispose"); }, _app_onload: function(sender, e) { if (this.__appLoaded__) return; this.__appLoaded__ = true; var element = this.get_element(); if (Sys.Extended.UI.HTMLEditor.isReallyVisible(element)) { this._parentNode_ = element.parentNode; this.reload(); } } } Sys.Extended.UI.HTMLEditor.Popups.Popup.registerClass("Sys.Extended.UI.HTMLEditor.Popups.Popup", Sys.UI.Control); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.Popups"); Sys.Extended.UI.HTMLEditor.Popups.LinkProperties = function(element) { Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.initializeBase(this, [element]); this._defaultTarget = "_self"; this._targetTextHolder = null; this._urlTextHolder = null; } Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.prototype = { get_defaultTarget : function() { return this._defaultTarget; }, set_defaultTarget : function(value) { this._defaultTarget = value; } } Sys.Extended.UI.HTMLEditor.Popups.LinkProperties.registerClass("Sys.Extended.UI.HTMLEditor.Popups.LinkProperties", Sys.Extended.UI.HTMLEditor.Popups.OkCancelAttachedTemplatePopup); rSys.Extended.UI.HTMLEditor.MSIE_list=function(r){var f="LI",h=false,a=null,m=this,k=m.get_paragraphs(),j=m.getSelectionAfterOperation(k),e=a,c=[],g=m,b=a,d=[],n=r.toUpperCase(),q=h;function i(){if(b!=a){var e;e=b.cloneNode(h);b.parentNode.insertBefore(e,b);while(b.firstChild!=d[0])e.appendChild(b.firstChild);e.firstChild==a&&e.parentNode.removeChild(e);if(b.tagName.toUpperCase()==n)for(var k=0;kD)p.parentNode.removeChild(p);else l.appendChild(p);if(z==t&&m==r.length-1){v();l=a}if(p==j[1]&&m==r.length-1){v();l=a}}}l&&l.firstChild&&v()}if(o!=a){for(var u=[],m=0;m0){if(l[0].parentNode!=e){c.length>0&&p();c=[];e=l[0].parentNode}c.push(l)}}c.length>0&&p();b!=a&&i();m.setSelectionAfterOperation(j,q)};Sys.Extended.UI.HTMLEditor.MSIE_justify=function(e,u,p){var a="",k=false,g=true,c=null,o=this,r=o.get_paragraphs(),h=o.getSelectionAfterOperation(r),b=c,f=[],j=o,d=typeof u!="undefined"&&u?g:k,i=typeof p=="string"?g:k,l=typeof p=="string"?p:a,m=k;function q(a){if(a!=c)if(a.childNodes==1&&(a.firstChild==h[0]||a.firstChild==h[1])){a.parentNode.insertBefore(a.firstChild,a);a.parentNode.removeChild(a)}}function t(){var H="TABLE",u="0px",D="LI",C="remain",s="left",o="P",z="DIV",y="align",U=b.firstChild,V=b.lastChild,T=k,x;if(b.tagName&&!Sys.Extended.UI.HTMLEditor.isInlineElement(b)&&f[0][0]==U&&f[f.length-1][f[f.length-1].length-1]==V){x=b.tagName.toUpperCase();if(x!="TD"&&x!="TH"&&x!="FIELDSET"&&x!="LEGEND")T=g}if(T){var L=a;if(b.getAttribute(y)&&b.getAttribute(y).length>0)L=b.getAttribute(y);if(b.align&&b.align.length>0)L=b.align;if(b.style.textAlign&&b.style.textAlign.length>0)L=b.style.textAlign;b.align=a;b.setAttribute(y,a);b.removeAttribute(y);if((x==z||x==o||Sys.Extended.UI.HTMLEditor.isHeader(b))&&e==s&&d){if(j.tryUnWrap(b,h,d))m=g}else{if(e!=C)if(!(e==s&&d)||x==D&&b.parentNode.style.textAlign.length>0)b.style.textAlign=e;else b.style.textAlign=a;if(d)b.style.margin=x==o?u:a;if(x==D){for(var t=b.parentNode,w=[],F=0;F0)n.style.textAlign=e;else n.style.textAlign=a;if(d)n.style.margin=p==o?u:a;for(var t=n.parentNode,w=[],F=0;FS&&(!i||n.nextSibling!=c&&n.nextSibling==h[1]))n.parentNode.removeChild(n);else v.appendChild(n);if(p=="BR"&&r==B.length-1&&!i){q(v);v=c}if(n==h[1]&&r==B.length-1){q(v);v=c}}}}}for(var s=0;s0){if(n[0].parentNode!=b){f.length>0&&t();f=[];b=n[0].parentNode}f.push(n)}}f.length>0&&t();o.setSelectionAfterOperation(h,m)};Sys.Extended.UI.HTMLEditor.MSIE_indent=function(s){var h="px",a="",e="P",c=null,m=this,p=m.get_paragraphs(),i=m.getSelectionAfterOperation(p),b=c,f=[],d=m,k=false;function j(a){if(a.nodeType==1){var b=!d.rtlState()?a.style.marginLeft:a.style.marginRight;if(b.length>0)return parseInt(b)}return 0}function g(c,b){if(c.nodeType==1){if(c.tagName.toUpperCase()==e&&b==a)b="0px";if(!d.rtlState())c.style.marginLeft=b;else c.style.marginRight=b}}function n(b){if(s)g(b,j(b)+40+h);else if(b.tagName.toUpperCase()==e)if(j(b)>=40)g(b,j(b)-40+h);else g(b,"0px");else if(j(b)>40)g(b,j(b)-40+h);else g(b,a)}function o(a){if(a!=c)if(a.childNodes==1&&(a.firstChild==i[0]||a.firstChild==i[1])){a.parentNode.insertBefore(a.firstChild,a);a.parentNode.removeChild(a)}}function r(){var z="LI",y="DIV",B="right",A="left",u="align",N=b.firstChild,O=b.lastChild;if(b.tagName&&!Sys.Extended.UI.HTMLEditor.isInlineElement(b)&&f[0][0]==N&&f[f.length-1][f[f.length-1].length-1]==O){var m=a;if(b.getAttribute(u)&&b.getAttribute(u).length>0)m=b.getAttribute(u);if(b.align&&b.align.length>0)m=b.align;if(b.style.textAlign&&b.style.textAlign.length>0)m=b.style.textAlign;if(m.toLowerCase()==A&&!d.rtlState()||m.toLowerCase()==B&&d.rtlState())m=a;b.align=a;b.setAttribute(u,a);b.removeAttribute(u);n(b);var E=b.tagName.toUpperCase();if((E==y||E==e||Sys.Extended.UI.HTMLEditor.isHeader(b))&&m==a){if(d.tryUnWrap(b,i))k=true}else{if(m!=a||E==z&&b.parentNode.style.textAlign.length>0)b.style.textAlign=m;else b.style.textAlign=a;if(E==z){for(var v=b.parentNode,r=[],D=0;DL)l.parentNode.removeChild(l);else t.appendChild(l);if(p=="BR"&&q==x.length-1){o(t);t=c}if(l==i[1]&&q==x.length-1){o(t);t=c}}}}for(var q=0;q0){if(l[0].parentNode!=b){f.length>0&&r();f=[];b=l[0].parentNode}f.push(l)}}f.length>0&&r();m.setSelectionAfterOperation(i,k)};Sys.Extended.UI.HTMLEditor.getSelectionAfterOperation=function(a){if(a.length==0)return[];var e=this._doc.createElement("SPAN"),d=this._doc.createElement("SPAN"),f=a[0][0],b=a[a.length-1][a[a.length-1].length-1];if(f==b&&b.nodeType==1&&b.childNodes.length==0&&Sys.Extended.UI.HTMLEditor.canHaveChildren(b)){b.appendChild(e);b.appendChild(d)}else{var g=Sys.Extended.UI.HTMLEditor._getReallyFirst(f);g.parentNode.insertBefore(e,g);if(g==f){var h=[];h.push(e);for(var i=0;i
";a.insertHTML(e);var c=a._doc.getElementById(Sys.Extended.UI.HTMLEditor.smartClassName+"_ll"),d=a._doc.getElementById(Sys.Extended.UI.HTMLEditor.smartClassName+"_rr"),f=a._TcurrentFormat;a._TcurrentFormat=null;a.setSelectionAfterOperation([c,d],false);a._TcurrentFormat=f;b=a.getPseudoP()}catch(g){}return b};Sys.Extended.UI.HTMLEditor.getPseudoP=function(){var y="",g))return[];if(!d.insertHTML(y+v+"'/>",h)){var x=d._doc.getElementById(q);if(x!=c){p=x.parentNode;p.removeChild(x)}return[]}}a=d._doc.getElementById(v);b=d._doc.getElementById(q);if(a!=c&&b!=c)while(a.nextSibling==c)if(a.parentNode.nextSibling)a.parentNode.parentNode.insertBefore(a,a.parentNode.nextSibling);else a.parentNode.parentNode.appendChild(a);if(a!=c&&b!=c){while(b.previousSibling==c)b.parentNode.parentNode.insertBefore(b,b.parentNode);if(b.previousSibling.nodeType==1){var A=b.previousSibling.tagName.toUpperCase();if(A!="BR"&&A!="IMG"){var t=Sys.Extended.UI.HTMLEditor._getReallyLast(b.previousSibling);if(t.nodeType==1&&Sys.Extended.UI.HTMLEditor.canHaveChildren(t))t.appendChild(b);else t.parentNode.appendChild(b)}}b.previousSibling&&b.previousSibling.nodeType==1&&b.previousSibling.tagName.toUpperCase()=="BR"&&b.parentNode.insertBefore(b,b.previousSibling)}if(a==c){var f=d._doc.createElement(n);f.id=v;b.parentNode.insertBefore(f,b);a=f}if(b==c){var f=d._doc.createElement(n);f.id=q;if(a.nextSibling)a.parentNode.insertBefore(f,a.nextSibling);else a.parentNode.appendChild(f);b=f}if(a!=c&&b!=c)if(a.parentNode==b)b.parentNode.insertBefore(a,b);else if(b.parentNode==a)if(a.nextSibling!=c)a.parentNode.insertBefore(b,a.nextSibling);else a.parentNode.appendChild(b);while(a.nextSibling!=c&&a.nextSibling.nodeType==3&&(""+a.nextSibling.data+"").length==0)a.parentNode.removeChild(a.nextSibling);if(d._TcurrentFormat==c&&a!=c&&b!=c&&a.nextSibling==b){var k=b.parentNode;d._TcurrentFormat=c;while(k&&k.tagName.toUpperCase()!="BODY"&&Sys.Extended.UI.HTMLEditor.isStyleTag(k.tagName)){if(k.tagName.toUpperCase()!="A"){var p=k.cloneNode(false);if(d._TcurrentFormat==c)d._TcurrentFormat=p;else{p.appendChild(d._TcurrentFormat);d._TcurrentFormat=p}}k=k.parentNode}if(d._TcurrentFormat){var C=d._doc.createElement("span");C.appendChild(d._TcurrentFormat);d._TcurrentFormat=C.innerHTML}}var e=a;while(e&&e.tagName&&Sys.Extended.UI.HTMLEditor.isStyleTag(e.tagName)&&e.tagName.toUpperCase()!="A")e=e.parentNode;if(e!=c&&e.tagName.toUpperCase()=="P")if(e.firstChild!=c)e.insertBefore(a,e.firstChild);else e.appendChild(a);else Sys.Extended.UI.HTMLEditor.positionInParagraph(a,a.previousSibling,true,a.parentNode);e=b;while(e&&e.tagName&&Sys.Extended.UI.HTMLEditor.isStyleTag(e.tagName)&&e.tagName.toUpperCase()!="A")e=e.parentNode;if(e!=c&&e.tagName.toUpperCase()=="P")e.appendChild(b);else Sys.Extended.UI.HTMLEditor.positionInParagraph(b,b.nextSibling,false,b.parentNode);s=d.getPseudoP_Recur(a,b,0);var z=a.parentNode.tagName.toUpperCase();if(s.length==0&&a.previousSibling==c&&b.nextSibling==c&&a.nextSibling==b&&(z=="P"||llpTagName=="DIV"||z=="LI"))s=[[a.parentNode]];if(Sys.Extended.UI.HTMLEditor.isIE){l.empty();l=d._getSelection();var r=d._createRange(l),w=d._createRange(l);try{a!=c&&r.moveToElementText(a);b!=c&&w.moveToElementText(b);if(a!=c&&b!=c){r.setEndPoint("EndToEnd",w);r.select()}else if(a!=c)r.select();else b!=c&&w.select()}catch(E){}}a!=c&&a.parentNode.removeChild(a);b!=c&&b.parentNode.removeChild(b)}catch(E){for(var B=d._doc.getElementsByTagName(n),u=[],m=0;m0){var D=new RegExp(Sys.Extended.UI.HTMLEditor.smartClassName,"ig");D.test(f.id)&&u.push(f)}}for(var m=0;m=0){R=y;L=i}if(Sys.Extended.UI.HTMLEditor._lookChild(q,m)>=0){S=y;M=i}}for(var i=L;i<=M;i++)for(var y=i==L?R:0;y<=(i==M?S:s.rows.item(i).cells.length-1);y++){var q=s.rows.item(i).cells.item(y);if(f>0){n[d]=c;d++;c=[];f=0}var B=Sys.Extended.UI.HTMLEditor._lookChild(q,l)>=0,C=Sys.Extended.UI.HTMLEditor._lookChild(q,m)>=0;if(B||C){var e=l,g=m,Q=Sys.Extended.UI.HTMLEditor.smartClassName+J+t,P=Sys.Extended.UI.HTMLEditor.smartClassName+K+t;if(B){g=r._doc.createElement(A);g.id=Q;q.appendChild(g)}if(C){e=r._doc.createElement(A);e.id=P;if(q.firstChild)q.insertBefore(e,q.firstChild);else q.appendChild(e)}for(var D=r.getPseudoP_Recur(e,g,t+1),v=0;v0){n[d]=c;d++;c=[];f=0}}}}else if(G=="UL"||G=="OL"||G=="DL"){for(var H=a,T=0,U=H.childNodes.length-1,i=0;i=0)T=i;if(o==m||Sys.Extended.UI.HTMLEditor._lookChild(o,m)>=0)U=i}}for(var i=T;i<=U;i++){var o=H.childNodes.item(i);if(f>0){n[d]=c;d++;c=[];f=0}var B=Sys.Extended.UI.HTMLEditor._lookChild(o,l)>=0,C=Sys.Extended.UI.HTMLEditor._lookChild(o,m)>=0;if(B||C){var e=l,g=m,Q=Sys.Extended.UI.HTMLEditor.smartClassName+J+t,P=Sys.Extended.UI.HTMLEditor.smartClassName+K+t;if(B){g=r._doc.createElement(A);g.id=Q;o.appendChild(g)}if(C){e=r._doc.createElement(A);e.id=P;if(o.firstChild)o.insertBefore(e,o.firstChild);else o.appendChild(e)}for(var D=r.getPseudoP_Recur(e,g,t+1),v=0;v0){n[d]=c;d++;c=[];f=0}}}}else{var B=Sys.Extended.UI.HTMLEditor._lookChild(a,l)>=0,C=Sys.Extended.UI.HTMLEditor._lookChild(a,m)>=0;if(f>0){n[d]=c;d++;c=[];f=0}if(B||C){var e=l,g=m,Q=Sys.Extended.UI.HTMLEditor.smartClassName+J+t,P=Sys.Extended.UI.HTMLEditor.smartClassName+K+t;if(B){g=r._doc.createElement(A);g.id=Q;a.appendChild(g)}if(C){e=r._doc.createElement(A);e.id=P;if(a.firstChild)a.insertBefore(e,a.firstChild);else a.appendChild(e)}for(var D=r.getPseudoP_Recur(e,g,t+1),v=0;v0){n[d]=c;d++;c=[];f=0}}}}else{if(f>0){n[d]=c;d++;c=[];f=0}c[f]=a;n[d]=c;d++;c=[];f=0}}if(a==h)break;a=a.nextSibling}if(f>0)n[d]=c}return n};Sys.Extended.UI.HTMLEditor.unWrap=function(a,f){var d="BR",e=this;if(a.firstChild){while(a.firstChild&&a.firstChild.nodeType==3&&""+a.firstChild.data+""=="")a.removeChild(a.firstChild);var b=[];while(a.firstChild){a.firstChild!=f[0]&&a.firstChild!=f[1]&&b.push(a.firstChild);a.parentNode.insertBefore(a.firstChild,a)}if(b.length==0){var g=e._doc.createElement(d);a.parentNode.insertBefore(g,a)}if(Sys.Extended.UI.HTMLEditor.isIE&&b.length==1&&b[0].nodeType==3){var h=""+b[0].data+"";if(h.length==1&&h.charCodeAt(0)==160){var g=e._doc.createElement(d);b[0].parentNode.insertBefore(g,b[0]);b[0].parentNode.removeChild(b[0])}}while(a.nextSibling&&a.nextSibling.nodeType==3&&""+a.nextSibling.data+""=="")a.parentNode.removeChild(a.nextSibling);var c=a.previousSibling&&f[1]==a.previousSibling?f[1].previousSibling:a.previousSibling;if(c&&Sys.Extended.UI.HTMLEditor.isInlineElement(c))if(c.nodeType==1&&c.childNodes.length>0)c=Sys.Extended.UI.HTMLEditor._getReallyLast(c);if(Sys.Extended.UI.HTMLEditor.isInlineElement(c)&&a.nextSibling!=null){var g=e._doc.createElement(d);a.parentNode.insertBefore(g,a)}}else{var g=e._doc.createElement(d);a.parentNode.insertBefore(g,a)}a.parentNode.removeChild(a)};Sys.Extended.UI.HTMLEditor.tryUnWrap=function(b,m,e){var g="undefined",l=this;b.style.textAlign="";for(var h=0,i=b.attributes,f=0;f0&&j!="transparent")return j;i=i.parentNode}return"#FFFFFF"}var c="none";switch(n.toLowerCase()){case"forecolor":c="color";break;case"fontname":c=l;break;case"fontsize":c=e}var b;if((c==e||c==l)&&d._FontNotSet){b="";var a=f.start;while(a!=g){if(c==e){if(a.style&&a.style.fontSize&&a.style.fontSize.length>0){b=a.style.fontSize;break}else if(a.tagName&&a.tagName.toUpperCase()=="FONT"&&a.size&&a.size.length>0){b=Sys.Extended.UI.HTMLEditor.fontSizeSeek(a.size);break}}else if(a.style&&a.style.fontFamily&&a.style.fontFamily.length>0){b=a.style.fontFamily;break}else if(a.tagName&&a.tagName.toUpperCase()=="FONT"&&a.face&&a.face.length>0){b=a.face;break}if(a.className&&a.className.length>0){b=Sys.Extended.UI.HTMLEditor.getStyle(a,c).toLowerCase();if(c==e)if(!Sys.Extended.UI.HTMLEditor.isIE)b=Sys.Extended.UI.HTMLEditor._TryTransformFromPxToPt(b,d,o);break}var h=a.tagName.toUpperCase();if(h=="BODY"||h=="TD")break;a=a.parentNode}}else{b=Sys.Extended.UI.HTMLEditor.getStyle(f.start,c).toLowerCase();if(c==e)if(!Sys.Extended.UI.HTMLEditor.isIE){b=Sys.Extended.UI.HTMLEditor._TryTransformFromPxToPt(b,d,o);var a=f.start;while(a!=g){if(a.style&&a.style.fontSize&&a.style.fontSize.length>0){b=a.style.fontSize;break}if(a.className&&a.className.length>0)break;var h=a.tagName.toUpperCase();if(h=="BODY"||h=="TD")break;a=a.parentNode}}}if(d._StyleForTyping!=g&&d._StyleForTyping.length>0)for(var k=0;k=0&&a<=2?true:false};Sys.Extended.UI.HTMLEditor.ActiveModeType.registerEnum("Sys.Extended.UI.HTMLEditor.ActiveModeType",true);F// (c) 2010 CodePlex Foundation /// /// /// (function() { var scriptName = "ExtendedFilteredTextBox"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.FilteredTextBoxBehavior = function(element) { /// /// The FilteredTextBoxBehavior is used to prevent invalid characters from being entered into a textbox /// /// /// The textbox element this behavior is associated with /// Sys.Extended.UI.FilteredTextBoxBehavior.initializeBase(this, [element]); this._keypressHandler = null; this._changeHandler = null; this._intervalID = null; this._filterType = Sys.Extended.UI.FilterTypes.Custom; this._filterMode = Sys.Extended.UI.FilterModes.ValidChars; this._validChars = null; this._invalidChars = null; this._filterInterval = 250; this.charTypes = { }; this.charTypes.LowercaseLetters = "abcdefghijklmnopqrstuvwxyz"; this.charTypes.UppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; this.charTypes.Numbers = "0123456789"; } Sys.Extended.UI.FilteredTextBoxBehavior.prototype = { initialize : function() { /// /// Initialize the behavior /// Sys.Extended.UI.FilteredTextBoxBehavior.callBaseMethod(this, 'initialize'); var element = this.get_element(); this._keypressHandler = Function.createDelegate(this, this._onkeypress); $addHandler(element, 'keypress', this._keypressHandler); this._changeHandler = Function.createDelegate(this, this._onchange); $addHandler(element, 'change', this._changeHandler); var callback = Function.createDelegate(this, this._intervalCallback); this._intervalID = window.setInterval(callback, this._filterInterval); }, dispose : function() { /// /// Dispose the behavior /// var element = this.get_element(); $removeHandler(element, 'keypress', this._keypressHandler); this._keypressHandler = null; $removeHandler(element, 'change', this._changeHandler); this._changeHandler = null; window.clearInterval(this._intervalID); Sys.Extended.UI.FilteredTextBoxBehavior.callBaseMethod(this, 'dispose'); }, _getValidChars : function() { /// /// Get all the valid characters /// /// /// All valid characters /// if (this._validChars) return this._validChars; this._validChars = ""; for (type in this.charTypes) { var filterType = Sys.Extended.UI.FilterTypes.toString(this._filterType); if (filterType.indexOf(type) != -1) { this._validChars += this.charTypes[type]; } } return this._validChars; }, _getInvalidChars : function() { /// /// Get all the invalid characters (in case of custom filtering and InvalidChars mode) /// /// /// All invalid characters /// if (!this._invalidChars) { this._invalidChars = this.charTypes.Custom; } return this._invalidChars; }, _onkeypress : function(evt) { /// /// Handler for the target textbox's key press event /// /// /// Event info /// var scanCode; if ( (((/* ff */ evt.rawEvent.charCode == 0) || (/* opera */ evt.rawEvent.keyCode == evt.rawEvent.which && evt.rawEvent.charCode == undefined)) && ((evt.rawEvent.keyCode == Sys.UI.Key.pageUp) || (evt.rawEvent.keyCode == Sys.UI.Key.pageDown) || (evt.rawEvent.keyCode == Sys.UI.Key.up) || (evt.rawEvent.keyCode == Sys.UI.Key.down) || (evt.rawEvent.keyCode == Sys.UI.Key.left) || (evt.rawEvent.keyCode == Sys.UI.Key.right) || (evt.rawEvent.keyCode == Sys.UI.Key.home) || (evt.rawEvent.keyCode == Sys.UI.Key.end) || (evt.rawEvent.keyCode == 46 /* Delete */))) || (evt.ctrlKey /* Control keys */)) { return; } if (evt.rawEvent.keyIdentifier) { if (evt.rawEvent.ctrlKey || evt.rawEvent.altKey || evt.rawEvent.metaKey) { return; } if (evt.rawEvent.keyIdentifier.substring(0,2) != "U+") { return; } scanCode = evt.rawEvent.charCode; if (scanCode == 63272 /* Delete */) { return; } } else { scanCode = evt.charCode; } if (scanCode && scanCode >= 0x20 /* space */) { var c = String.fromCharCode(scanCode); if(!this._processKey(c)) { evt.preventDefault(); } } }, _processKey : function(key) { /// /// Determine whether the key is valid or whether it should be filtered out /// /// /// Character to be validated /// /// /// True if the character should be accepted, false if it should be filtered /// var filter = ""; var shouldFilter = false; if (this._filterMode == Sys.Extended.UI.FilterModes.ValidChars) { filter = this._getValidChars(); shouldFilter = filter && (filter.length > 0) && (filter.indexOf(key) == -1); } else { filter = this._getInvalidChars(); shouldFilter = filter && (filter.length > 0) && (filter.indexOf(key) > -1); } var eventArgs = new Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs(key, Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()).get_Value(), shouldFilter); this.raiseProcessKey(eventArgs); if (eventArgs.get_allowKey()) { return true; } this.raiseFiltered(new Sys.Extended.UI.FilteredTextBoxEventArgs(key)); return false; }, _onchange : function() { /// /// Handler for the target textbox's key change event which will filter /// the text again (to make sure no text was inserted without keypresses, etc.) /// var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var text = wrapper.get_Value() || ''; var result = new Sys.StringBuilder(); for (var i = 0; i < text.length; i++) { var ch = text.substring(i, i+1); if (this._processKey(ch)) { result.append(ch); } } if (wrapper.get_Value() != result.toString()) { wrapper.set_Value(result.toString()); } }, _intervalCallback : function() { /// /// Method that is repeatedly called to purge invalid characters from the textbox /// this._changeHandler(); }, get_ValidChars : function() { /// /// A string consisting of all characters considered valid for the textbox, if /// "Custom" is specified as the field type. Otherwise this parameter is ignored. /// return this.charTypes.Custom; }, set_ValidChars : function(value) { if (this._validChars != null || this.charTypes.Custom != value) { this.charTypes.Custom = value; this._validChars = null; this.raisePropertyChanged('ValidChars'); } }, get_InvalidChars : function() { /// /// A string consisting of all characters considered invalid for the textbox, if "Custom" is specified as the field type. Otherwise this parameter is ignored. /// return this.charTypes.Custom; }, set_InvalidChars : function(value) { if (this._invalidChars != null || this.charTypes.Custom != value) { this.charTypes.Custom = value; this._invalidChars = null; this.raisePropertyChanged('InvalidChars'); } }, get_FilterType : function() { /// /// FilterType - A the type of filter to apply, as a comma-separated combination of /// Numbers, LowercaseLetters, UppercaseLetters, and Custom. If Custom is specified, /// the ValidChars field will be used in addition to other settings such as Numbers. /// return this._filterType; }, set_FilterType : function(value) { if (this._validChars != null || this._filterType != value) { this._filterType = value; this._validChars = null; this.raisePropertyChanged('FilterType'); } }, get_FilterMode : function() { /// /// FilterMode - The filter mode to apply when custom filtering is activated; supported values are ValidChars and InvalidChars. /// return this._filterMode; }, set_FilterMode : function(value) { if (this._validChars != null || this._invalidChars != null || this._filterMode != value) { this._filterMode = value; this._validChars = null; this._invalidChars = null; this.raisePropertyChanged('FilterMode'); } }, get_FilterInterval : function() { /// /// An integer containing the interval (in milliseconds) in which /// the field's contents are filtered /// return this._filterInterval; }, set_FilterInterval : function(value) { if (this._filterInterval != value) { this._filterInterval = value; this.raisePropertyChanged('FilterInterval'); } }, add_processKey : function(handler) { /// /// Add an event handler for the processKey event /// /// /// Event handler /// /// this.get_events().addHandler('processKey', handler); }, remove_processKey : function(handler) { /// /// Remove an event handler from the processKey event /// /// /// Event handler /// /// this.get_events().removeHandler('processKey', handler); }, raiseProcessKey : function(eventArgs) { /// /// Raise the processKey event /// /// /// Event arguments for the processKey event /// /// var handler = this.get_events().getHandler('processKey'); if (handler) { handler(this, eventArgs); } }, add_filtered : function(handler) { /// /// Add an event handler for the filtered event /// /// /// Event handler /// /// this.get_events().addHandler('filtered', handler); }, remove_filtered : function(handler) { /// /// Remove an event handler from the filtered event /// /// /// Event handler /// /// this.get_events().removeHandler('filtered', handler); }, raiseFiltered : function(eventArgs) { /// /// Raise the filtered event /// /// /// Event arguments for the filtered event /// /// var handler = this.get_events().getHandler('filtered'); if (handler) { handler(this, eventArgs); } } } Sys.Extended.UI.FilteredTextBoxBehavior.registerClass('Sys.Extended.UI.FilteredTextBoxBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.FilteredTextBoxBehavior, { name: "filteredTextBox" }); Sys.Extended.UI.FilterTypes = function() { /// /// Character filter to be applied to a textbox /// /// /// Custom Characters /// /// /// Numbers (0123456789) /// /// /// Uppercase Letters (ABCDEFGHIJKLMNOPQRSTUVWXYZ) /// /// /// Lowercase Letters (abcdefghijklmnopqrstuvwxyz) /// throw Error.invalidOperation(); } Sys.Extended.UI.FilterTypes.prototype = { Custom : 0x1, Numbers : 0x2, UppercaseLetters : 0x4, LowercaseLetters : 0x8 } Sys.Extended.UI.FilterTypes.registerEnum('Sys.Extended.UI.FilterTypes', true); Sys.Extended.UI.FilterModes = function() { /// /// Filter mode to be applied to a textbox /// /// /// Provide a list of valid characters /// /// /// Provide a list of invalid characters /// throw Error.invalidOperation(); } Sys.Extended.UI.FilterModes.prototype = { ValidChars : 0x1, InvalidChars : 0x2 } Sys.Extended.UI.FilterModes.registerEnum('Sys.Extended.UI.FilterModes', true); Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs = function(key, text, shouldFilter) { /// /// Event arguments used when the processKey event is raised /// /// /// Key to be processed /// /// /// Current text in the textbox /// /// /// Whether the character should be filtered given the current /// FilteredTextBox settings /// Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs.initializeBase(this); this._key = key; this._text = text; this._shouldFilter = shouldFilter; this._allowKey = !shouldFilter; } Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs.prototype = { get_key : function() { /// /// Key to be processed /// return this._key; }, get_text : function() { /// /// Current text in the textbox /// return this._text; }, get_shouldFilter : function() { /// /// Whether the character should be filtered given the current /// FilteredTextBox settings /// return this._shouldFilter; }, get_allowKey : function() { /// /// Whether or not the key will be filtered. It defaults to the opposite of /// shouldFilter and should be set by handlers of the processKey event. /// return this._allowKey; }, set_allowKey : function(value) { this._allowKey = value; } } Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs.registerClass('Sys.Extended.UI.FilteredTextBoxProcessKeyEventArgs', Sys.EventArgs); Sys.Extended.UI.FilteredTextBoxEventArgs = function(key) { /// /// Event arguments used when the filtered event is raised /// /// /// Key that was filtered /// Sys.Extended.UI.FilteredTextBoxEventArgs.initializeBase(this); this._key = key; } Sys.Extended.UI.FilteredTextBoxEventArgs.prototype = { get_key : function() { /// /// Key that was filtered /// return this._key; } } Sys.Extended.UI.FilteredTextBoxEventArgs.registerClass('Sys.Extended.UI.FilteredTextBoxEventArgs', Sys.EventArgs); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedBase", "ExtendedCommon"], execute); } else { execute(); } })(); 1// (c) 2010 CodePlex Foundation /// /// (function() { var scriptName = "ExtendedConfirmButton"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.ConfirmButtonHiddenEventArgs = function(confirmed) { /// /// Event arguments used when the hidden event is raised /// /// /// Whether or not the user confirmed the prompt /// Sys.Extended.UI.ConfirmButtonHiddenEventArgs.initializeBase(this); this._confirmed = confirmed; } Sys.Extended.UI.ConfirmButtonHiddenEventArgs.prototype = { get_confirmed : function() { /// /// Whether or not the user confirmed the prompt /// return this._confirmed; } } Sys.Extended.UI.ConfirmButtonHiddenEventArgs.registerClass('Sys.Extended.UI.ConfirmButtonHiddenEventArgs', Sys.EventArgs); Sys.Extended.UI.ConfirmButtonBehavior = function(element) { /// /// The ConfirmButtonBehavior extends buttons by providing a confirmation dialog when clicked /// /// /// Button the behavior is associated with /// Sys.Extended.UI.ConfirmButtonBehavior.initializeBase(this, [element]); this._ConfirmTextValue = null; this._OnClientCancelValue = null; this._ConfirmOnFormSubmit = false; this._displayModalPopupID = null; this._postBackScript = null; this._clickHandler = null; this._oldScript = null; } Sys.Extended.UI.ConfirmButtonBehavior.prototype = { initialize : function() { /// /// Initialize the behavior /// Sys.Extended.UI.ConfirmButtonBehavior.callBaseMethod(this, 'initialize'); var element = this.get_element(); this._clickHandler = Function.createDelegate(this, this._onClick); $addHandler(element, "click", this._clickHandler); this._oldScript = element.getAttribute("onclick"); if (this._oldScript) { element.setAttribute("onclick", null); } if (this._ConfirmOnFormSubmit && (typeof(WebForm_OnSubmit) == 'function') && !Sys.Extended.UI.ConfirmButtonBehavior._originalWebForm_OnSubmit) { if (Sys.Extended.UI.TextBoxWatermarkBehavior && Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit) { Sys.Extended.UI.ConfirmButtonBehavior._originalWebForm_OnSubmit = Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit; Sys.Extended.UI.TextBoxWatermarkBehavior._originalWebForm_OnSubmit = Sys.Extended.UI.ConfirmButtonBehavior.WebForm_OnSubmit; } else { Sys.Extended.UI.ConfirmButtonBehavior._originalWebForm_OnSubmit = WebForm_OnSubmit; WebForm_OnSubmit = Sys.Extended.UI.ConfirmButtonBehavior.WebForm_OnSubmit; } } }, dispose : function() { /// /// Dispose the behavior /// if (this._clickHandler) { $removeHandler(this.get_element(), "click", this._clickHandler); this._clickHandler = null; } if (this._oldScript) { this.get_element().setAttribute("onclick", this._oldScript); this._oldScript = null; } Sys.Extended.UI.ConfirmButtonBehavior.callBaseMethod(this, 'dispose'); }, _onClick : function(e) { /// /// Button's click handler to display the confirmation dialog /// /// /// Event info /// if (this.get_element() && !this.get_element().disabled) { if (this._ConfirmOnFormSubmit) { Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = this; } else { if (!this._displayConfirmDialog()) { e.preventDefault(); return false; } else if (this._oldScript) { if (String.isInstanceOfType(this._oldScript)) { eval(this._oldScript); } else if (typeof(this._oldScript) == 'function'){ this._oldScript(); } } } } }, _displayConfirmDialog : function() { /// /// Handle the completion of a confirm dialog (whether by window.confirm or ModalPopupBehavior) /// /// /// Result of the confirm dialog or false to cancel /// var eventArgs = new Sys.CancelEventArgs(); this.raiseShowing(eventArgs); if (eventArgs.get_cancel()) { return; } if(this._displayModalPopupID) { var mpe = $find(this._displayModalPopupID); if (!mpe) { throw Error.argument('displayModalPopupID', String.format(Sys.Extended.UI.Resources.CollapsiblePanel_NoControlID, this._displayModalPopupID)); } mpe.set_OnOkScript("$find('"+this.get_id()+"')._handleConfirmDialogCompletion(true);"); mpe.set_OnCancelScript("$find('"+this.get_id()+"')._handleConfirmDialogCompletion(false);"); mpe.show(); return false; } else { var result = window.confirm(this._ConfirmTextValue); this._handleConfirmDialogCompletion(result); return result; } }, _handleConfirmDialogCompletion : function(result) { /// /// Handle the completion of a confirm dialog (whether by window.confirm or ModalPopupBehavior) /// /// /// Result of the confirm dialog /// this.raiseHidden(new Sys.Extended.UI.ConfirmButtonHiddenEventArgs(result)); if (result) { if (this._postBackScript ) { eval(this._postBackScript); } } else { if (this._OnClientCancelValue) { window[this._OnClientCancelValue](); } } }, get_OnClientCancel : function (){ /// /// The client-side script that executes when the cancel button is clicked on the confirm dialog. /// return this._OnClientCancelValue; }, set_OnClientCancel : function (value) { if (this._OnClientCancelValue != value) { this._OnClientCancelValue = value; this.raisePropertyChanged('OnClientCancel'); } }, get_ConfirmText : function() { /// /// The text to show when you want to confirm the click. (Note: HTML entities can be used here (ex: " " for new-line)) /// return this._ConfirmTextValue; }, set_ConfirmText : function(value) { if (this._ConfirmTextValue != value) { this._ConfirmTextValue = value; this.raisePropertyChanged('ConfirmText'); } }, get_ConfirmOnFormSubmit : function() { /// /// True iff the confirm dialog should run for form submission (i.e., after validators are all satisfied) /// return this._ConfirmOnFormSubmit; }, set_ConfirmOnFormSubmit : function(value) { if (this._ConfirmOnFormSubmit != value) { this._ConfirmOnFormSubmit = value; this.raisePropertyChanged('ConfirmOnFormSubmit'); } }, get_displayModalPopupID : function() { /// /// ID of a ModalPopupBehavior to be used instead of the default window.confirm dialog /// return this._displayModalPopupID; }, set_displayModalPopupID : function(value) { if (this._displayModalPopupID != value) { this._displayModalPopupID = value; this.raisePropertyChanged('displayModalPopupID'); } }, get_postBackScript : function() { /// /// Script to run to initiate a postback /// return this._postBackScript; }, set_postBackScript : function(value) { if (this._postBackScript != value) { this._postBackScript = value; this.raisePropertyChanged('postBackScript'); } }, add_showing : function(handler) { /// /// Add an event handler for the showing event /// /// /// Event handler /// /// this.get_events().addHandler('showing', handler); }, remove_showing : function(handler) { /// /// Remove an event handler from the showing event /// /// /// Event handler /// /// this.get_events().removeHandler('showing', handler); }, raiseShowing : function(eventArgs) { /// /// Raise the showing event /// /// /// Event arguments for the showing event /// /// var handler = this.get_events().getHandler('showing'); if (handler) { handler(this, eventArgs); } }, add_hidden : function(handler) { /// /// Add an event handler for the hidden event /// /// /// Event handler /// /// this.get_events().addHandler('hidden', handler); }, remove_hidden : function(handler) { /// /// Remove an event handler from the hidden event /// /// /// Event handler /// /// this.get_events().removeHandler('hidden', handler); }, raiseHidden : function(eventArgs) { /// /// Raise the hidden event /// /// /// Event arguments for the hidden event /// /// var handler = this.get_events().getHandler('hidden'); if (handler) { handler(this, eventArgs); } } } Sys.Extended.UI.ConfirmButtonBehavior.registerClass('Sys.Extended.UI.ConfirmButtonBehavior', Sys.Extended.UI.BehaviorBase); Sys.registerComponent(Sys.Extended.UI.ConfirmButtonBehavior, { name: "confirmButton", parameters: [{name: "ConfirmText", type: "String"}] }); Sys.Extended.UI.ConfirmButtonBehavior.WebForm_OnSubmit = function() { /// /// Wraps ASP.NET's WebForm_OnSubmit in order to display the confirm dialog prior to submission /// /// /// Result of original WebForm_OnSubmit /// var result = Sys.Extended.UI.ConfirmButtonBehavior._originalWebForm_OnSubmit(); if (result && Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior) { result = Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior._displayConfirmDialog(); } Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = null; return result; } } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["ExtendedBase"], execute); } else { execute(); } })(); 6  & h( @ {bN{bN{bN{bN{bN{bN{bN{bN{bN{bN{bN~eQ~eQ~eQ~eQ}dP|eͽRͽǾq_r`yòͽ&;vq_ͽ ̼ucijiͽĻxgͽ}ͽfS~eQ˹~eQ~eQ~eQ{bN{bN{bN{bN{bN{bN{bN?(  }{bN{bN{bN{bN{bN{bN|cPѧfͽԹ堌}ͽ ꪘ˿Lͽ¹蚆w󼷵ͽ}dQ}dQ|cO}dQ|cO}dQlXlX 6  & h( @ pFRupFRXcIRuucsap]lYhU|cPx_Lt[GpVClS?jOiP;gM9kФxŏMk1rDkФxŏMk1rDkФxŏMk1rDkϡxŏMk1rDkϡxŏMk1rDucsap^lZgU}cPx_KtZGpVClR>jO;gM9k̜rÊMk1rDkɖhMk3wGkgk}ǓhMk6~K2tF0oCmkϡɖ^yHdA[2tFʳIJɽkϡoC^4yIIJ©kϡ6}Kǰǰǰǰǰǰǰǰǰǰǰkǰǰǰǰǰġǰǰǰǰǰǰǰǰǰġġǰǰǰǰǰǰǰġǰġǰǰǰǰǰġǰǰǰġǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰ?(  FR$FR<~E3JU'FRXcCM<~E3u$grٕivVa@J<~E3ucsap]lYhU|cPИ͕Ìq~CNQ[ZdwyцS]ucs`p]lZhU|dQ{Yb{r~@Jucsap^lZgU}cPw~͋@Jgr͕ÌؗXc@JZdǼt~ٕr~@JŮgrٕCMǰǰǰġǰǰgrǰǰġġǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰǰおkD6  & h( @ GGGS*RhOmN:LG GF9F^FmFmFmFvFmF!V}WUROaHGӄFFDDBBBFhY׆]^YQPֆMJlIFDDDDCDFO[g^caZROHKJGFDDDEШG^P`gd`YRP԰OOKGFFFFѨF<`%]վacbaYVUQIFFGGb`4^؜]]ab_[PFFFIIa _y]ئ]cd`WHFFKJIyIzHiGca_k]eif`VJHOOLJHHmG a٢cmoqqe[TVUQNKHHkhfCbt{we_]WRRPLHllۙj3gtmc^VQӼRPLJѲgjmPjۮtre_Zgjuۂ݇whd^lxvhkgymg_p&o۪}|neׁqp|tj`q:liihdֆenf}~p_dhrjcp.l|pddآqdjhfedcfi>d00 ??????????(  [&^q&&&&hED&Xo_\&D&iVɩXd+5׵&mq\qDE^&&X dn[U[}&[]pRh]$[gggktX0Ҭhgggjchgggg þ}a h& h(  ''-69 ")-29<H@FJLTfx`u~UZ\bfjmpuy ./-  (   1$$#"  0***''$#  264443+'%#888863+%$ <<<<<64+'$!<=<<864*6?(  @Hf BۙWcۇ ~߷Bc .u.-("ATFGE@8.#O X\]ZTK@2#'c]knmiaVI:*qlwyvpfZL<+ w-zyumcVG7(EvsKmfdfXTKhGIF89a 1<89<ݡSƎ! ,EA(@ Pą ^xa" "V&D !b!@A "2`QA;bGIF89a .188<ݡSƎ! ,?A(  pP &L8 A@ph(S ;fGIF89a ض! ,C 0`@0H @8AD`„,TI@`8A;iGIF89a 1<89<ݡSƎ! ,F 4@ d`88Jpp„(P /\Hʃ1ny3 ;0GIF89a,<<!, H;GIF89aNy333!,IE{'hnFj6t].'oA bsQ -t HmXouijz]v- |N_x"~ 2 X6 c? 1 = ;GIF89ah}vׇとה:lK{JxLy\dgvÌϘޤ뗵בϒϝپ٣)^3f4g?oVVWbЅʎϩ!r,r!$%"(+.'-2256.9M[[^QK\[H27;;e[doZf[qoЂ: <@>0 Aݢ@a DACYP ԥACA6L:dmqBŧ*P(QBP^Ę1d,dE4 ظ#7lԠQ` 1Aie ,;i zAGy ʝ7/Cx;// (c) 2010 CodePlex Foundation Type.registerNamespace("Sys.Extended.UI.Seadragon");Sys.Extended.UI.Seadragon.Viewport=function(c,b,d){var a=this;a.zoomPoint=null;a.config=d;a._containerSize=c;a._contentSize=b;a._contentAspect=b.x/b.y;a._contentHeight=b.y/b.x;a._centerSpringX=new Seadragon.Spring(0,a.config);a._centerSpringY=new Seadragon.Spring(0,a.config);a._zoomSpring=new Seadragon.Spring(1,a.config);a._homeBounds=new Sys.Extended.UI.Seadragon.Rect(0,0,1,a._contentHeight);a.goHome(true);a.update()};Sys.Extended.UI.Seadragon.Viewport.prototype={_getHomeZoom:function(){var a=this._contentAspect/this.getAspectRatio();return a>=1?1:a},_getMinZoom:function(){var a=this,b=a._getHomeZoom();if(a.config.minZoomDimension)var c=a._contentSize.x<=a._contentSize.y?a.config.minZoomDimension/a._containerSize.x:a.config.minZoomDimension/(a._containerSize.x*a._contentHeight);else var c=a.config.minZoomImageRatio*b;return Math.min(c,b)},_getMaxZoom:function(){var a=this,b=a._contentSize.x*a.config.maxZoomPixelRatio/a._containerSize.x;return Math.max(b,a._getHomeZoom())},getAspectRatio:function(){return this._containerSize.x/this._containerSize.y},getContainerSize:function(){return new Sys.Extended.UI.Seadragon.Point(this._containerSize.x,this._containerSize.y)},getBounds:function(b){var c=this.getCenter(b),a=1/this.getZoom(b),d=a/this.getAspectRatio();return new Sys.Extended.UI.Seadragon.Rect(c.x-a/2,c.y-d/2,a,d)},getCenter:function(l){var a=this,b=new Sys.Extended.UI.Seadragon.Point(a._centerSpringX.getCurrent(),a._centerSpringY.getCurrent()),d=new Sys.Extended.UI.Seadragon.Point(a._centerSpringX.getTarget(),a._centerSpringY.getTarget());if(l)return b;else if(!a.zoomPoint)return d;var k=a.pixelFromPoint(a.zoomPoint,true),g=a.getZoom(),c=1/g,f=c/a.getAspectRatio(),e=new Sys.Extended.UI.Seadragon.Rect(b.x-c/2,b.y-f/2,c,f),j=a.zoomPoint.minus(e.getTopLeft()).times(a._containerSize.x/e.width),h=j.minus(k),i=h.divide(a._containerSize.x*g);return d.plus(i)},getZoom:function(a){return a?this._zoomSpring.getCurrent():this._zoomSpring.getTarget()},applyConstraints:function(i){var b=this,j=b.getZoom(),g=Math.max(Math.min(j,b._getMaxZoom()),b._getMinZoom());j!=g&&b.zoomTo(g,b.zoomPoint,i);var a=b.getBounds(),h=b.config.visibilityRatio,c=h*a.width,d=h*a.height,m=a.x+a.width,l=1-a.x,n=a.y+a.height,k=b._contentHeight-a.y,e=0;if(!b.config.wrapHorizontal)if(m=f){b.height=c.width/f;b.y=g.y-b.height/2}else{b.width=c.height*f;b.x=g.x-b.width/2}a.panTo(a.getCenter(d),d);a.zoomTo(a.getZoom(d),null,d);var e=a.getBounds(),k=a.getZoom(),i=1/b.width;if(i==k||b.width==e.width){a.panTo(g,h);return}var j=e.getTopLeft().times(a._containerSize.x/e.width).minus(b.getTopLeft().times(a._containerSize.x/b.width)).divide(a._containerSize.x/e.width-a._containerSize.x/b.width);a.zoomTo(i,j,h)},goHome:function(c){var a=this,b=a.getCenter();if(a.config.wrapHorizontal){b.x=(1+b.x%1)%1;a._centerSpringX.resetTo(b.x);a._centerSpringX.update()}if(a.config.wrapVertical){b.y=(a._contentHeight+b.y%a._contentHeight)%a._contentHeight;a._centerSpringY.resetTo(b.y);a._centerSpringY.update()}a.fitBounds(a._homeBounds,c)},panBy:function(c,a){var b=new Sys.Extended.UI.Seadragon.Point(this._centerSpringX.getTarget(),this._centerSpringY.getTarget());this.panTo(b.plus(c),a)},panTo:function(a,c){var b=this;if(c){b._centerSpringX.resetTo(a.x);b._centerSpringY.resetTo(a.y)}else{b._centerSpringX.springTo(a.x);b._centerSpringY.springTo(a.y)}},zoomBy:function(c,b,a){this.zoomTo(this._zoomSpring.getTarget()*c,b,a)},zoomTo:function(b,a,c){if(c)this._zoomSpring.resetTo(b);else this._zoomSpring.springTo(b);this.zoomPoint=a instanceof Sys.Extended.UI.Seadragon.Point?a:null},resize:function(c,f){var a=this,d=a.getBounds(),b=d,e=c.x/a._containerSize.x;a._containerSize=new Sys.Extended.UI.Seadragon.Point(c.x,c.y);if(f){b.width=d.width*e;b.height=b.width/a.getAspectRatio()}a.fitBounds(b,true)},update:function(){var a=this,g=a._centerSpringX.getCurrent(),h=a._centerSpringY.getCurrent(),c=a._zoomSpring.getCurrent();if(a.zoomPoint)var f=a.pixelFromPoint(a.zoomPoint,true);a._zoomSpring.update();if(a.zoomPoint&&a._zoomSpring.getCurrent()!=c){var e=a.pixelFromPoint(a.zoomPoint,true),d=e.minus(f),b=a.deltaPointsFromPixels(d,true);a._centerSpringX.shiftBy(b.x);a._centerSpringY.shiftBy(b.y)}else a.zoomPoint=null;a._centerSpringX.update();a._centerSpringY.update();return a._centerSpringX.getCurrent()!=g||a._centerSpringY.getCurrent()!=h||a._zoomSpring.getCurrent()!=c},deltaPixelsFromPoints:function(a,b){return a.times(this._containerSize.x*this.getZoom(b))},deltaPointsFromPixels:function(a,b){return a.divide(this._containerSize.x*this.getZoom(b))},pixelFromPoint:function(c,b){var a=this.getBounds(b);return c.minus(a.getTopLeft()).times(this._containerSize.x/a.width)},pointFromPixel:function(c,b){var a=this.getBounds(b);return c.divide(this._containerSize.x/a.width).plus(a.getTopLeft())}};Sys.Extended.UI.Seadragon.Viewport.registerClass("Sys.Extended.UI.Seadragon.Viewport",null,Sys.IDisposable);2 // (c) 2010 CodePlex Foundation (function(){var b="ExtendedMutuallyExclusiveCheckBox";function a(){var a="checked";Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior=function(b){var a=this;Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.initializeBase(a,[b]);a._key="";a._clickHandler=Function.createDelegate(a,a._onclick)};Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.prototype={initialize:function(){Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.callBaseMethod(this,"initialize");$addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){var a=this;if(a._key){var b=Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys,c=b[a._key];Array.remove(c,a);a._key=null}if(a._clickHandler){$removeHandler(a.get_element(),"click",a._clickHandler);a._clickHandler=null}Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.callBaseMethod(a,"dispose")},get_Key:function(){return this._key},set_Key:function(c){var a=this,d=Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys;if(c!=a._key){if(a._key){var b=d[a._key];Array.remove(b,a._key)}a._key=c;if(c){var b=d[a._key];if(b==null)b=d[a._key]=[];Array.add(b,a)}}},_onclick:function(){var a=this,b=a.get_element(),c=Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys;if(a._key&&b.checked){var d=c[a._key],e=a;Array.forEach(d,function(a){if(a!=e){a.get_element().checked=false;$common.tryFireEvent(a.get_element(),"change")}})}a.raiseChecked(new Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs(b,a._key))},add_checked:function(b){this.get_events().addHandler(a,b)},remove_checked:function(b){this.get_events().removeHandler(a,b)},raiseChecked:function(c){var b=this.get_events().getHandler(a);b&&b(this,c)}};Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.registerClass("Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior",Sys.Extended.UI.BehaviorBase);Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior.Keys={};Sys.registerComponent(Sys.Extended.UI.MutuallyExclusiveCheckBoxBehavior,{name:"mutuallyExclusiveCheckBox",parameters:["Key"]});Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs=function(a,b){Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.initializeBase(this);this._key=b;this._checkbox=a};Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.prototype={get_checkbox:function(){return this._checkbox},get_key:function(){return this._key}};Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs.registerClass("Sys.Extended.UI.MutuallyExclusiveCheckBoxEventArgs",Sys.EventArgs)}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedBase","ExtendedCommon"],a);else a()})();// (c) 2010 CodePlex Foundation (function(){var a=null;function b(){var p="isFetching",L="itemTemplate",y="itemPlaceholder",K="fetchSucceeded",J="fetchFailed",W="itemRendering",V="itemRendered",I="rendered",H="rendering",O="binding",U="initialize",T="propertyChanged",q="optionsChanged",G="get_",x="command",S="selectedIndex",R="selectedindex",k="function",ab="selected",cb="readonly",z="checked",o="disabled",A="sys-template",w="select",Z="className",Y="style.cssText",Q="sys:attach",v="name",u="type",j="input",F="button",N="innerText",n="value",E="textarea",P="InternetExplorer",D="class:",c=-1,h="string",C="null",d=false,f="",t=", ",s=" ",r=");\n",l="innerHTML",i=";\n",m="));\n",B="document.createTextNode(",b=true,g="undefined";Type._registerScript("MicrosoftAjaxTemplates.js",["MicrosoftAjaxComponentModel.js","MicrosoftAjaxSerialization.js"]);var e,X,bb=Sys._merge,db=Sys._foreach,fb=Sys._forIn,eb=Sys._isBrowser;function M(a){return Sys.Serialization.JavaScriptSerializer.serialize(a)}Type.registerNamespace("Sys.Net");e=Sys.Net.WebRequestEventArgs=function(d,e,c){var b=this;b._executor=d;b._error=e||a;b._result=typeof c===g?a:c;Sys.Net.WebRequestEventArgs.initializeBase(b)};e.prototype={get_error:function(){return this._error||a},get_executor:function(){return this._executor},get_result:function(){return this._result}};e.registerClass("Sys.Net.WebRequestEventArgs",Sys.EventArgs);Type.registerNamespace("Sys.Data");if(!Sys.Data.IDataProvider){e=Sys.Data.IDataProvider=function(){};e.registerInterface("Sys.Data.IDataProvider")}if(!Sys.Data.MergeOption){e=Sys.Data.MergeOption=function(){};e.prototype={appendOnly:0,overwriteChanges:1};e.registerEnum("Sys.Data.MergeOption")}Type.registerNamespace("Sys.UI");e=Sys.Application;e.registerMarkupExtension=function(c,d,a){if(!this._extensions)this._extensions={};a=typeof a===g||a===b;this._extensions[c]={expression:a,extension:d}};e._getMarkupExtension=function(c){var b=this._extensions?this._extensions[c]:a;if(!b)throw Error.invalidOperation(String.format(Sys.UI.TemplatesRes.cannotFindMarkupExtension,c));return b};e=Sys.UI.Template=function(b){this._element=b;this._instantiateIn=a;this._instanceId=0};e.prototype={get_element:function(){return this._element},dispose:function(){this._element=a;this._instantiateIn=a},_appendTextNode:function(b,a,c){b.push(a,B,M(c),m)},_appendAttributeSetter:function(c,w,j,a,n,q){var h=" $component.",g=" $component = $element;\n ",p=j.ns,e=j.name,v=!p&&Sys.UI.Template._isRestricted(e);if(v)a="Sys.UI.Template._checkAttribute('"+e+"', "+a+")";switch(j.type){case 1:c.push(g);if(n)if(j.textNode)c.push("$element.appendChild(document.createTextNode(",a,m);else c.push("$element.",e," = ",a,i);else c.push(a,i);if(j.textNode||e===l)return b;break;case 2:if(n){e=M(e);c.push(" $component = $element;\n (",a,") ? Sys.UI.DomElement.addCssClass($element, ",e,") : Sys.UI.DomElement.removeCssClass($element, ",e,r)}else c.push(g,a,i);break;case 3:var o=w[p];if(o.isClass){c.push(" $component = __componentIndex['",p,"'];\n");if(n){var k=j.map;if(k.type===1)c.push(h,k.setterName,"(",a,r);else if(k.type===2)c.push(" __f = ",a,i,h,k.setterName,'(typeof(__f) === "function" ? __f : new Function("sender", "args", __f));\n');else c.push(h,k.name," = ",a,i)}else c.push(s,a,i)}else{var u=M(j.name)+": "+a;if(!o.props)o.props=u;else o.props+=t+u}break;case 4:this["_"+e]=a;break;default:if(n)if(/^on/i.test(e))c.push(" $component = $element;\n $element."+e+" = new Function("+(document.attachEvent?f:"'event', ")+a+r);else if(q)c.push(" $component = $element;\n if ("+a+") {\n __e = document.createAttribute('"+e+"');\n __e.nodeValue = \""+q+'";\n $element.setAttributeNode(__e);\n }\n');else c.push(" $component = $element;\n __e = document.createAttribute('"+e+"');\n __e.nodeValue = "+a+";\n $element.setAttributeNode(__e);\n");else c.push(g+a+i)}return d},_processAttribute:function(f,e,b,a,c){a=this._getAttributeExpression(b,a);return a?this._appendAttributeSetter(f,e,b,a.code,a.isExpression,c):d},_getAttributeExpression:function(e,d,l){var p=typeof d;if(p===g)return a;if(d===a)return{isExpression:b,code:C};if(!e.isNative&&p===h)if(d.startsWith("{{")&&d.endsWith("}}"))return{isExpression:b,code:d.slice(2,-2).trim()};else if(d.startsWith("{")&&d.endsWith("}")){var k=Sys.Application._getExtensionCode(d.slice(1,c)),m=k.properties,i=f;for(var n in m){var j=this._getAttributeExpression(e,m[n]);if(j&&j.isExpression){var o=M(n)+":"+j.code;if(i)i+=","+o;else i=o}}return{isExpression:k.instance.expression,code:"Sys.Application._getMarkupExtension("+M(k.name)+").extension($component, "+M((e.type===2?D:f)+e.name)+", $context, {"+i+"})"}}if(e.isId){l=b;d="$id("+M(d)+")"}return{isExpression:b,code:l?d:M(d)}},_processBooleanAttribute:function(e,h,g,c){var a,f,d=e.getAttributeNode("sys:"+c);if(!d){f=b;d=e.getAttributeNode(c);if(d&&(d.specified||d.nodeValue===b))a=b;else if(e.getAttribute(c)===c)a=b;else return}else{a=d.nodeValue;if(a==="true")a=b;else if(a==="false")return}this._processAttribute(h,g,{name:c,isNative:f},a,c)},_processBooleanAttributes:function(d,e,c,b){for(var h,i,g,a=0,f=b.length;a":"/>";try{a=document.createElement(h)}catch(k){c=b}if(typeof c===g)c=a.tagName.toLowerCase()!==(d?F:j);i._dynamic=c;if(c)a=i(f,e,d)}return a};e._isTemplate=function(b){var a=b.className;return a&&(a===A||/(^| )sys\-template($| )/.test(a))};e._inputRequiredAttributes={type:1,name:1,"sys:type":1,"sys:name":1};e._commonBooleanAttributes={disabled:b," list":[o]};e._inputBooleanAttributes={disabled:b,checked:b,readonly:b," list":[o,z,cb]};e._booleanAttributes={input:Sys.UI.Template._inputBooleanAttributes,select:{disabled:b,multiple:b," list":[o,"multiple"]},option:{disabled:b,selected:b," list":[o,ab]},img:{disabled:b,ismap:b," list":[o,"ismap"]},textarea:{disabled:b,readonly:b," list":[o,cb]}};e._expressionRegExp=/\{\{\s*([\w\W]*?)\s*\}\}/g;e.allowedProtocols=["http","https"];e.restrictedAttributes=["src","href","codebase","cite","background","action","longdesc","profile","usemap","classid","data"];e._getRestrictedIndex=function(){var c,f,h,g,e=Sys.UI.Template.allowedProtocols||[],d=Sys.UI.Template.restrictedAttributes||[],a=Sys.UI.Template._restrictedIndex;if(!a||a.allowedProtocols!==e||a.restrictedAttributes!==d){a={allowedProtocols:e,restrictedAttributes:d};a.protocols=h={};for(c=0,f=e.length;cd;b--){var a=c[b];if(a&&Sys.Component.isInstanceOfType(a))if(a.get_isUpdating())a.endUpdate();else!a.get_isInitialized()&&a.initialize()}}},_onInstantiated:function(c,e){var b=this;db(b._completed,function(a){a()});b._completed=[];if(!e){var d=b.containerElement;db(b.nodes,function(b){d.insertBefore(b,c||a)})}},_registerComponent:function(c){var d=this.components;c.__tc=[this._tcindex,d.length];d.push(c);Sys.Component._register(c,a,b)},_registerIf:function(a){if(a instanceof Array)for(var b=0,c=a.length;b=0&&(!S||M[N].expando)&&!e.__msajaxactivated){for(r=N;r>=0;r--){var u=M[r];if(S&&!u.expando)break;if(!u.specified||u.nodeName.indexOf(":")<0)continue;U=b;H=u.nodeName;var i=u.nodeValue;switch(H){case Q:I=i.split(",");break;case"sys:command":var hb=Sys.Application._getPropertyValue(a,a,a,i,s,a,b),fb=Sys.Application._getCommandAttr(e,"sys:commandargument",C,s),eb=Sys.Application._getCommandAttr(e,x,C,s);Sys.query(e).setCommand(hb||f,fb||a,Sys.UI.DomElement._ensureGet(eb,s,x));break;default:y=y||[];y.push(u)}}if(U){e.__msajaxactivated=b;if(I){v={};for(var R=0,jb=I.length;R=0;r--){u=y[r];H=u.nodeName;i=u.nodeValue;var X=/^select$/i.test(e.tagName),q=Sys.Application._splitAttribute(H,X,v),O=q.type,lb=q.ns,j=q.name;if(O<0)continue;if(O===3){m=q.index;var J=m.instance;i=Sys.Application._getPropertyValue(q,J,j,i,s);if(typeof i===g)continue;if(m.isClass)switch(q.map.type){case 1:q.map.setter.call(J,i);break;case 2:q.map.setter.call(J,typeof i===k?i:new Function("sender","args",i));break;default:J[j]=i}else m.props[j]=i}else if(O<=2){(q.textNode||j===l)&&Sys.Application._clearContent(e);i=Sys.Application._getPropertyValue(q,e,j,i,s);if(typeof i===g)continue;switch(q.type){case 0:if(/^on/i.test(j)){e[j]=document.attachEvent?new Function(i):new Function("event",i);break}if(X&&j===n){e.value=i;break}var W=Sys.UI.Template._booleanAttributes,Y=e.tagName.toLowerCase(),Z=j===o||W[Y]&&W[Y][j];if(Z){if(j===ab)e.selected=i;if(!i){e.removeAttribute(j);break}else if(j===z){e.setAttribute(j,j);break}}var cb=document.createAttribute(j);cb.nodeValue=Z?j:i;e.setAttributeNode(cb);break;case 1:if(q.textNode){Sys.Application._clearContent(e);e.appendChild(document.createTextNode(i))}else Sys.Observer.setValue(e,j,i);break;case 2:i?Sys.UI.DomElement.addCssClass(e,j):Sys.UI.DomElement.removeCssClass(e,j)}}}if(B)for(r=0,db=B.length;r=12&&(F===A||gb.test(F))){var p=e.nextSibling;while(p&&p.nodeType!==1)p=p.nextSibling;while(!p){e=e.parentNode;if(e===E)break;p=e.nextSibling;while(p&&p.nodeType!==1)p=p.nextSibling}if(!p||p.nodeType!==1)break;do{e=T[P+1];if(e===p)break;P++}while(e)}}}while(!!(e=T[++P]))};e._clearContent=function(a){var c;Sys.Application.disposeElement(a,b);try{a.innerHTML=f}catch(c){while(a.firstChild)a.removeChild(a.firstChild)}};e._getCommandAttr=function(d,e,g,f){var h,c=a;try{c=g?d[e]:d.getAttribute(e);c=c?Sys.Application._getPropertyValue(a,a,a,c,f,a,b):a}catch(h){}return c};e._directAttributes={style:Y,"class":Z,cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",contenteditable:"contentEditable",valign:"vAlign",innertext:N,innerhtml:l};e._splitAttribute=function(p,r,l){var h=p.split(":"),f=h.length>1?h[0]:a,d=h[f?1:0],e=c,m,j,g,i=f==="sys",k=d.toLowerCase(),q=!f;if(!f||i){var o=Sys.Application._directAttributes[k];if(o){e=1;if(d==="innertext")m=b;d=o}else if(r){if(k===R){d=S;e=1}else if(d===n)e=1;else if(i){e=0;f=a}}else if(i)if(d===x||d==="commandargument"||d==="commandtarget")e=4;else if(d.indexOf("style-")===0){d="style."+Sys.Application._translateStyleName(d.substr(6));e=1}else if(d.indexOf("class-")===0){d=d.substr(6);e=2}else{f=a;e=0}}else if(l){g=l[f];if(g){e=3;if(g.isClass){j=Sys.Application._translateName(d,g.type);d=j.name}}else{d=f+":"+d;f=a;e=c}}else{d=f+":"+d;f=a;e=c}return{ns:f,name:d,type:e,map:j,index:g,textNode:m,isNative:q}};e._translateStyleName=function(b){if(b.indexOf("-")===c)return b;for(var a=b.toLowerCase().split("-"),e=a[0],d=1,g=a.length;d=3)c._sourceOption=j.call(c,i,c.get_path());if(e&&g<=3)c._targetOption=j.call(c,e,c.get_targetProperty())},_isChecked:function(a,b){return b===z&&a.tagName.toLowerCase()===j},_optionsUpdated:function(a){!this._disposed&&this.update(a===this.get_source()?4:2)},_sourceChanged:function(j){var c=this;if(c._disposed)return;j=j===b;var p,h=c.get_target(),e=c.get_source();if(!h)return;e=e&&c._pathArray?c._getPropertyFromIndex(e,c._pathArray,0,c._pathArray.length-1):e;if(!c._updateSource&&(j||e!==c._lastSource))try{c._updateTarget=b;c._lastSource=c._lastTarget=e;if(c._convertFn)if(c._ignoreErrors)try{e=c._convertFn(e,c)}catch(p){}else e=c._convertFn(e,c);if(e===a||typeof e===g)e=c.get_defaultValue();if(c._targetProperty&&c._targetProperty.startsWith(D)){var n=c._targetProperty.substr(6).trim();e?Sys.UI.DomElement.addCssClass(h,n):Sys.UI.DomElement.removeCssClass(h,n)}else{var m=c._targetPropertyArray.length;h=c._getPropertyFromIndex(h,c._targetPropertyArray,0,m-2);if(h!==a&&typeof h!==g){var i=c._targetPropertyArray[m-1],k=Sys.UI.DomElement.isDomElement(h);if(k)e=Sys.UI.Template._checkAttribute(i,e)||f;if(k&&(i===l||i===N)){Sys.Application._clearContent(h);if(i===l)h.innerHTML=e;else h.appendChild(document.createTextNode(e));Sys.Observer.raisePropertyChanged(h,i)}else Sys.Observer._setValue(h,i,e);if(e&&k&&c._isChecked(h,i)){var o=document.createAttribute(i);o.nodeValue=i;h.setAttributeNode(o)}}}}finally{c._updateTarget=d}!j&&c._watchObject(c.get_source(),b)},_targetChanged:function(i){var c=this;if(c._disposed)return;i=i===b;var e=c.get_target(),f=c.get_source();if(!f)return;e=!e?a:c._getPropertyFromIndex(e,c._targetPropertyArray,0,c._targetPropertyArray.length-1);if(!c._updateTarget&&(i||e!==c._lastTarget))try{c._updateSource=b;c._lastTarget=c._lastSource=e;if(c._convertBackFn)if(c._ignoreErrors)try{e=c._convertBackFn(e,c)}catch(n){}else e=c._convertBackFn(e,c);if(c._pathArray){var j=c._pathArray.length;f=c._getPropertyFromIndex(f,c._pathArray,0,j-2);if(f!==a&&typeof f!==g){var h=c._pathArray[j-1],k=Sys.UI.DomElement.isDomElement(f);if(k){e=Sys.UI.Template._checkAttribute(h,e);h===l&&Sys.Application._clearContent(f)}Sys.Observer._setValue(f,h,e);if(e&&k&&c._isChecked(f,h)){var m=document.createAttribute(h);m.nodeValue=h;f.setAttributeNode(m)}}}}finally{c._updateSource=d}!i&&c._watchObject(c.get_target())},_resolveReference:function(c){var b=Sys.get(c,this.get_templateContext());return b||a}};e._disposeBindings=function(){var b=this.__msajaxbindings;if(b)for(var c=0,d=b.length;c1)a=bb({targetProperty:b,source:c,path:d},a);else a=b;this.each(function(){a.target=this;Sys.binding(a)});return this};Sys.registerPlugin({name:O,global:b,plugin:function(e,f,i,j,b){if(arguments.length>1)b=bb({target:e,targetProperty:f,source:i,path:j,templateContext:Sys._isInstanceOfType(Sys.UI.TemplateContext,this)?this:a},b);else b=e;var c=b.mode;if(typeof c===h)b.mode=Sys.BindingMode.parse(c);c=b.ignoreErrors;if(typeof c===h)b.ignoreErrors=Boolean.parse(c);var d=new Sys.Binding;fb(b,function(a,b){typeof a!==g&&Sys.Observer.setValue(d,b,a)});d.initialize();return d}});Sys.registerPlugin({name:"domBinding",functionName:O,dom:b,plugin:Sys.Binding._bindThis});Sys.registerPlugin({name:"componentBinding",functionName:O,components:b,plugin:Sys.Binding._bindThis});Sys.Application.registerMarkupExtension(O,function(e,c,b,d){var a=bb({source:b.dataItem,templateContext:b,target:e,targetProperty:c},d);a.path=a.path||a.$default;delete a.$default;var f=Sys.binding(a);b.components.push(f)},d);e=Sys.UI.DataView=function(a){Sys.UI.DataView.initializeBase(this,[a])};e.prototype={_autoFetch:d,_fetching:d,_changed:d,_data:a,_dataProvider:a,_wsp:a,_wspClass:a,_dirty:d,_stale:b,_dvTemplate:a,_eventType:0,_httpVerb:a,_initialSelectedIndex:c,_fetchParameters:a,_parentContext:a,_placeholder:a,_query:a,_contexts:a,_selectedIndex:c,_selectedItemClass:a,_template:a,_timeout:0,_request:a,add_command:function(a){this._addHandler(x,a)},remove_command:function(a){this._removeHandler(x,a)},add_rendering:function(a){this._addHandler(H,a)},remove_rendering:function(a){this._removeHandler(H,a)},add_rendered:function(a){this._addHandler(I,a)},remove_rendered:function(a){this._removeHandler(I,a)},add_itemRendered:function(a){this._addHandler(V,a)},remove_itemRendered:function(a){this._removeHandler(V,a)},add_itemRendering:function(a){this._addHandler(W,a)},remove_itemRendering:function(a){this._removeHandler(W,a)},add_fetchFailed:function(a){this._addHandler(J,a)},remove_fetchFailed:function(a){this._removeHandler(J,a)},add_fetchSucceeded:function(a){this._addHandler(K,a)},remove_fetchSucceeded:function(a){this._removeHandler(K,a)},get_viewData:function(){return this._viewData||a},get_data:function(){return this._data},set_data:function(a){(!this._setData||this._data!==a)&&this._loadData(a)},get_dataProvider:function(){return this._provider||a},set_dataProvider:function(c){var d=this;d._dataProvider=d._wsp=d._wspClass=a;if(c instanceof Sys.ComponentSet)c=c.get(0);if(Sys.Data.IDataProvider.isImplementedBy(c))d._dataProvider=c;else if(Sys.Net.WebServiceProxy.isInstanceOfType(c))d._wsp=c;else if(Type.isClass(c)&&c.inheritsFrom(Sys.Net.WebServiceProxy)&&typeof c.get_path===k)d._wspClass=c;d._provider=c;if(d.get_autoFetch()&&d._isActive())c&&d._doAutoFetch();else d._stale=b},get_autoFetch:function(){return this._autoFetch},set_autoFetch:function(b){var a=this,c=a._autoFetch;if(typeof b===h)b=Boolean.parse(b);a._autoFetch=b;a._isActive()&&a._stale&&!c&&b&&a._doAutoFetch()},get_isFetching:function(){return this._fetching},get_httpVerb:function(){return this._httpVerb||"POST"},set_httpVerb:function(a){this._httpVerb=a},get_contexts:function(){return this._contexts},get_fetchParameters:function(){return this._fetchParameters},set_fetchParameters:function(c){var a=this;if(a._fetchParameters!==c){a._fetchParameters=c;if(a.get_autoFetch()&&a._isActive())a._doAutoFetch();else a._stale=b}},get_selectedData:function(){var e=a,d=this.get_selectedIndex();if(d>c){var b=this.get_viewData();if(b instanceof Array){if(d=f.length;d._selectedIndex=e;d._currentData=e===c||i?a:f[e];var h=d.get_selectedItemClass();d._addRemoveCssClass(g,h,Sys.UI.DomElement.removeCssClass);d._addRemoveCssClass(e,h,Sys.UI.DomElement.addCssClass);if(!d.get_isUpdating())e!==g&&d.raisePropertyChanged(S);else d._changed=b}if(!d.get_isUpdating())d._raiseSelectedData();else d._changed=b},_addRemoveCssClass:function(b,f,i){if(f&&b>c){var d=this.get_contexts(),h=d?d.length:c;if(h&&b=e.newStartingIndex)a+=e.newItems.length}else{var h=e.oldStartingIndex,j=e.oldItems.length,l=h+j-1;if(a>l)a-=j;else if(a>=h){a=c;break}}}a!==m&&d.set_selectedIndex(a)},_elementContains:function(c,a,e){if(c===a)return!e;do{a=a.parentNode;if(a===c)return b}while(a);return d},_raiseChanged:function(a){if(this._isActive())this.raisePropertyChanged(a);else this._changed=b},_raiseFailed:function(b,d){var c=new Sys.Net.WebRequestEventArgs(b?b.get_executor():a,d);this.onFetchFailed(c);Sys.Observer.raiseEvent(this,J,c)},_raiseSelectedData:function(){var a=this;if(a._lastData!==a._currentData){a._lastData=a._currentData;a.raisePropertyChanged("selectedData")}},_raiseSucceeded:function(b,d){var c=new Sys.Net.WebRequestEventArgs(b?b.get_executor():a,a,d);this.onFetchSucceeded(c);Sys.Observer.raiseEvent(this,K,c)},_ensureTemplate:function(a){if(!Sys.UI.Template.isInstanceOfType(a)){a=Sys.UI.DomElement._ensureGet(a,this.get_templateContext(),L);if(a)a=new Sys.UI.Template(a)}return a},_getTemplate:function(){var b=this;if(b._dvTemplate)return b._dvTemplate;var a=b.get_itemTemplate();if(!a){var c=b.get_element();if(Sys.UI.Template._isTemplate(c))b._dvTemplate=a=new Sys.UI.Template(c)}else if(!Sys.UI.Template.isInstanceOfType(a)){a=Sys.UI.DomElement._ensureGet(a,b.get_templateContext(),L);b._dvTemplate=a=new Sys.UI.Template(a)}return a},_loadData:function(c){var a=this;a._swapData(a._data,c);a._data=c;a._setData=b;a._stale=d;a._dirty=b;if(a._isActive()){a.refresh();a.raisePropertyChanged("data")}else a._changed=b},_resetSelectedIndex:function(){var a=this,e=a.get_viewData(),b=a.get_initialSelectedIndex(),d=a.get_selectedIndex();if(!(e instanceof Array)||b>=e.length){if(d!==c){a.set_selectedIndex(c);return}}else if(d!==b){a.set_selectedIndex(b);return}a._currentData=a.get_selectedData();a._raiseSelectedData()},_initializeResults:function(){for(var a=0,c=this._contexts.length;ac)for(var k=f[h],e=0,m=g.length;ec)return e}}}}return c},findContext:function(d){var b=this._findContextIndex(d);return b!==c?this.get_contexts()[b]:a},_clearContainer:function(e,a){var h=a?a.__msajaxphcount:c;if(h>c&&a)a.__msajaxphcount=0;if(h<0){a&&e.removeChild(a);Sys.Application.disposeElement(e,b);try{e.innerHTML=f}catch(n){var k;while(k=e.firstChild)e.removeChild(k)}a&&e.appendChild(a)}else if(h>0){var g,m,l,i=e.childNodes;for(g=0,m=i.length;gc)f.__msajaxphcount=F+o.nodes.length}}if(n)for(k=0;kc)e._applySelectedIndex(e.get_selectedIndex(),b);else e._resetSelectedIndex();e._rendered=b;var B=e.get_selectedItemClass();if(B){var C=e.get_selectedIndex();C!==c&&e._addRemoveCssClass(C,B,Sys.UI.DomElement.addCssClass)}e.raisePropertyChanged("viewData");e.onRendered(h);Sys.Observer.raiseEvent(e,I,h);e._initializeResults()},_swapData:function(c,b){var a=this;if(c)switch(a._eventType){case 1:c.remove_collectionChanged(a._changedHandler);break;case 2:Sys.Observer.removeCollectionChanged(c,a._changedHandler)}a._eventType=0;if(b){if(!a._changedHandler)a._changedHandler=Function.createDelegate(a,a._collectionChanged);if(typeof b.add_collectionChanged===k){b.add_collectionChanged(a._changedHandler);a._eventType=1}else if(b instanceof Array){Sys.Observer.addCollectionChanged(b,a._changedHandler);a._eventType=2}}},_validateIndexInput:function(a){var b=typeof a;if(b===h)a=parseInt(a);return a},dispose:function(){var b=this;b._placeholders&&!Sys.Application.get_isDisposing()&&b._clearContainers(b._placeholders);b._dvTemplate&&b._dvTemplate.dispose();if(b.get_isFetching()){b.abortFetch();b._fetching=d}b._swapData(b._data,a);b._currentData=b._lastData=b._placeholders=b._containers=b._placeholder=b._contexts=b._parentContext=b._dvTemplate=b._request=b._dataProvider=b._wsp=b._wspClass=b._provider=b._data=b._fetchParameters=b._query=a;Sys.UI.DataView.callBaseMethod(b,"dispose")},initialize:function(){Sys.UI.DataView.callBaseMethod(this,U);this.refresh();this.updated()},fetchData:function(w,x,r,s){var f="fetchData",c=this;c._stale=d;var h,e=c;function j(b){e._loadData(b);e._fetching=d;e._request=a;e._raiseChanged(p);e._raiseSucceeded(h,b);w&&w(b,s,f)}function n(b){e._fetching=d;e._request=a;e._raiseChanged(p);e._raiseFailed(h,b);x&&x(b,s,f)}c._fetching&&c.abortFetch();var y=c._dataProvider,q=c._wsp,v=c._wspClass,o=c.get_fetchOperation(),i=c.get_fetchParameters()||a,l=c.get_httpVerb()||"POST",m=c.get_timeout()||0;if(typeof r===g)r=a;if(y)h=y.fetchData(o,i,r,l,j,n,m,s);else if(q){var t=q.get_path();if(!t){var u=Object.getType(q);if(u&&typeof u.get_path===k)t=u.get_path()}h=Sys.UI.DataView._fetchWSP(a,t,o,i,l,j,n,m||q.get_timeout())}else if(v)h=Sys.UI.DataView._fetchWSP(a,v.get_path(),o,i,l,j,n,m||v.get_timeout());else h=Sys.UI.DataView._fetchWSP(a,c._provider,o,i,l,j,n,m);c._request=h;c._fetching=b;c._raiseChanged(p);return h},onCommand:function(){},onItemRendering:function(){},onItemRendered:function(){},updated:function(){var a=this;a._stale&&a.get_autoFetch()&&a._doAutoFetch();a._dirty&&a.refresh();if(a._changed){a.raisePropertyChanged(f);a._changed=d}}};e.registerClass("Sys.UI.DataView",Sys.UI.Control,Sys.UI.ITemplateContextConsumer);Sys.registerComponent(e);e._fetchWSP=function(i,h,d,c,e,a,b,g,f){return Sys.Net.WebServiceProxy.invoke(h,d,e==="GET",c,a,b,f,g)};e=Sys.UI.DataViewEventArgs=function(a){if(typeof a!==g)this.data=a;Sys.UI.DataViewEventArgs.initializeBase(this)};e.prototype={data:a,itemTemplate:a,itemPlaceholder:a};e.registerClass("Sys.UI.DataViewEventArgs",Sys.CancelEventArgs)}if(window.Sys&&Sys.loader)Sys.loader.registerScript("Templates",a,b);else b()})();o// (c) 2010 CodePlex Foundation //!/ (function() { function execute() { Type._registerScript("MicrosoftAjaxComponentModel.js", ["MicrosoftAjaxCore.js"]); Type.registerNamespace('Sys.UI'); var $type, $prototype, isBrowser = Sys._isBrowser, foreach = Sys._foreach, forIn = Sys._forIn, callIf = Sys._callIf; $type = Sys.CommandEventArgs = function CommandEventArgs(commandName, commandArgument, commandSource, commandEvent) { /// /// The command name. /// The command arguments. /// The command source. /// The DOM event that caused the command, if any. var e = Function._validateParams(arguments, [ {name: "commandName", type: String}, {name: "commandArgument", mayBeNull: true}, {name: "commandSource", mayBeNull: true}, {name: "commandEvent", type: Sys.UI.DomEvent, mayBeNull: true, optional: true } ]); if (e) throw e; Sys.CommandEventArgs.initializeBase(this); this._commandName = commandName; this._commandArgument = commandArgument; this._commandSource = commandSource; this._commandEvent = commandEvent; } $type.prototype = { get_commandName: function CommandEventArgs$get_commandName() { /// The command name. if (arguments.length !== 0) throw Error.parameterCount(); return this._commandName || null; }, get_commandArgument: function CommandEventArgs$get_commandArgument() { /// The command arguments. if (arguments.length !== 0) throw Error.parameterCount(); return this._commandArgument; }, get_commandSource: function CommandEventArgs$get_commandSource() { /// The command source. if (arguments.length !== 0) throw Error.parameterCount(); return this._commandSource || null; }, get_commandEvent: function CommandEventArgs$get_commandEvent() { /// The DOM event that caused the command, if any. if (arguments.length !== 0) throw Error.parameterCount(); return this._commandEvent || null; } } $type.registerClass("Sys.CommandEventArgs", Sys.CancelEventArgs); $type = Sys.INotifyDisposing = function INotifyDisposing() { /// Implement this interface if the class exposes an event to notify when it's disposing. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } $type.prototype = { add_disposing: function INotifyDisposing$add_disposing(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; throw Error.notImplemented(); }, remove_disposing: function INotifyDisposing$remove_disposing(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; throw Error.notImplemented(); } } $type.registerInterface("Sys.INotifyDisposing"); $type = Sys.Component = function Component() { /// Base class for Control, Behavior and any object that wants its lifetime to be managed. if (arguments.length !== 0) throw Error.parameterCount(); if (Sys.Application) Sys.Application.registerDisposableObject(this); } $type.prototype = { _idSet: false, get_events: function Component$get_events() { /// The collection of event handlers for this behavior. This property should only be used by derived behaviors and should not be publicly called by other code. if (arguments.length !== 0) throw Error.parameterCount(); return Sys.Observer._getContext(this, true).events; }, get_id: function Component$get_id() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._id || null; }, set_id: function Component$set_id(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; if (this._idSet) throw Error.invalidOperation(Sys.Res.componentCantSetIdTwice); this._idSet = true; var oldId = this.get_id(); if (oldId && Sys.Application.findComponent(oldId)) throw Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp); this._id = value; }, get_isInitialized: function Component$get_isInitialized() { /// if (arguments.length !== 0) throw Error.parameterCount(); return !!this._initialized; }, get_isUpdating: function Component$get_isUpdating() { /// if (arguments.length !== 0) throw Error.parameterCount(); return !!this._updating; }, add_disposing: function Component$add_disposing(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._addHandler("disposing", handler); }, remove_disposing: function Component$remove_disposing(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._removeHandler("disposing", handler); }, add_propertyChanged: function Component$add_propertyChanged(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._addHandler("propertyChanged", handler); }, remove_propertyChanged: function Component$remove_propertyChanged(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._removeHandler("propertyChanged", handler); }, _addHandler: function Component$_addHandler(eventName, handler) { Sys.Observer.addEventHandler(this, eventName, handler); }, _removeHandler: function Component$_removeHandler(eventName, handler) { Sys.Observer.removeEventHandler(this, eventName, handler); }, beginUpdate: function Component$beginUpdate() { this._updating = true; }, dispose: function Component$dispose() { Sys.Observer.raiseEvent(this, "disposing") Sys.Observer.clearEventHandlers(this); Sys.Application.unregisterDisposableObject(this); Sys.Application.removeComponent(this); }, endUpdate: function Component$endUpdate() { this._updating = false; if (!this._initialized) this.initialize(); this.updated(); }, initialize: function Component$initialize() { this._initialized = true; }, raisePropertyChanged: function Component$raisePropertyChanged(propertyName) { /// Raises a change notification event. /// The name of the property that changed. var e = Function._validateParams(arguments, [ {name: "propertyName", type: String} ]); if (e) throw e; Sys.Observer.raisePropertyChanged(this, propertyName); }, updated: function Component$updated() { } } $type.registerClass('Sys.Component', null, Sys.IDisposable, Sys.INotifyPropertyChange, Sys.INotifyDisposing); $type._setProperties = function Component$_setProperties(target, properties) { /// Recursively sets properties on an object. /// The object on which to set the property values. /// A JSON object containing the property values. var e = Function._validateParams(arguments, [ {name: "target"}, {name: "properties"} ]); if (e) throw e; var current; var targetType = Object.getType(target); var isObject = (targetType === Object) || (targetType === Sys.UI.DomElement); var isComponent = Sys.Component.isInstanceOfType(target) && !target.get_isUpdating(); if (isComponent) target.beginUpdate(); for (var name in properties) { var val = properties[name]; var getter = isObject ? null : target["get_" + name]; if (isObject || typeof(getter) !== 'function') { var targetVal = target[name]; if (!val || (typeof(val) !== 'object') || (isObject && !targetVal)) { target[name] = val; } else { this._setProperties(targetVal, val); } } else { var setter = target["set_" + name]; if (typeof(setter) === 'function') { setter.apply(target, [val]); } else if (val instanceof Array) { current = getter.apply(target); if (!(current instanceof Array)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name)); for (var i = 0, j = current.length, l= val.length; i < l; i++, j++) { current[j] = val[i]; } } else if ((typeof(val) === 'object') && (Object.getType(val) === Object)) { current = getter.apply(target); if ((typeof(current) === 'undefined') || (current === null)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, name)); this._setProperties(current, val); } else { throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name)); } } } if (isComponent) target.endUpdate(); } $type._setReferences = function Component$_setReferences(component, references) { var reference, refs = {}; forIn(references, function(id, name) { refs[name] = reference = $find(id); if (!reference) throw Error.invalidOperation(String.format(Sys.Res.referenceNotFound, id)); }); Sys._set(component, refs); } $create = $type.create = function Component$create(type, properties, events, references, element) { /// Instantiates a component of the specified type, attaches it to the specified element if it's a Control or Behavior, sets the properties as described by the specified JSON object, then calls initialize. /// The type of the component to create. /// A JSON object that describes the properties and their values. /// A JSON object that describes the events and their handlers. /// A JSON object that describes the properties that are references to other components. The contents of this object consists of name/id pairs. If in a two-pass creation, the setting of these properties will be delayed until the second pass. /// The DOM element the component must be attached to. /// The component instance. var e = Function._validateParams(arguments, [ {name: "type", type: Type}, {name: "properties", mayBeNull: true, optional: true}, {name: "events", mayBeNull: true, optional: true}, {name: "references", mayBeNull: true, optional: true}, {name: "element", mayBeNull: true, domElement: true, optional: true} ]); if (e) throw e; if (type.inheritsFrom(Sys.UI.Behavior) || type.inheritsFrom(Sys.UI.Control)) { if (!element) throw Error.argument('element', Sys.Res.createNoDom); } else if (element) throw Error.argument('element', Sys.Res.createComponentOnDom); var component = (element ? new type(element): new type()); callIf(component, "beginUpdate"); if (properties) { Sys.Component._setProperties(component, properties); } if (events) { for (var name in events) { if (!(component["add_" + name] instanceof Function)) throw new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name)); if (!(events[name] instanceof Function)) throw new Error.invalidOperation(Sys.Res.eventHandlerNotFunction); component["add_" + name](events[name]); } } Sys.Component._register(component, references); return component; } $type._register = function Component$_register(component, references, dontUpdate) { var ret; if (Sys.Component.isInstanceOfType(component)) { ret = true; var app = Sys.Application; if (component.get_id()) { app.addComponent(component); } if (app.get_isCreatingComponents()) { app._createdComponents.push(component); if (references) { app._addComponentToSecondPass(component, references); } else if (!dontUpdate) { component.endUpdate(); } } else { if (references) { Sys.Component._setReferences(component, references); } if (!dontUpdate) { component.endUpdate(); } } } return ret; } Sys._getComponent = function _getComponent(found, selector, context) { var component = Sys.Application.findComponent(selector); if (component) { found.push(component); } } Sys._2Pass = function _2Pass(callback) { var app = Sys.Application, useTwoPass = !app.get_isCreatingComponents(); if (useTwoPass) app.beginCreateComponents(); foreach(callback, function(c) { c() }); if (useTwoPass) app.endCreateComponents(); } $type = Sys.UI.MouseButton = function MouseButton() { /// Describes mouse buttons. The values are those from the DOM standard, which are different from the IE values. /// /// /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } $type.prototype = { leftButton: 0, middleButton: 1, rightButton: 2 } $type.registerEnum("Sys.UI.MouseButton"); $type = Sys.UI.Key = function Key() { /// Describes key codes. /// /// /// /// /// /// /// /// /// /// /// /// /// /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } $type.prototype = { backspace: 8, tab: 9, enter: 13, esc: 27, space: 32, pageUp: 33, pageDown: 34, end: 35, home: 36, left: 37, up: 38, right: 39, down: 40, del: 127 } $type.registerEnum("Sys.UI.Key"); $type = Sys.UI.Point = function Point(x, y) { /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true} ]); if (e) throw e; this.x = x; this.y = y; } $type.registerClass('Sys.UI.Point'); $type = Sys.UI.Bounds = function Bounds(x, y, width, height) { /// /// /// /// /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true}, {name: "width", type: Number, integer: true}, {name: "height", type: Number, integer: true} ]); if (e) throw e; this.x = x; this.y = y; this.height = height; this.width = width; } $type.registerClass('Sys.UI.Bounds'); $type = Sys.UI.DomEvent = function DomEvent(eventObject) { /// A cross-browser object that represents event properties. /// The browser-specific event object (window.event for IE). /// /// /// The character code for the pressed key. /// /// /// /// The key code for the pressed key. /// /// /// /// /// /// /// var e = Function._validateParams(arguments, [ {name: "eventObject"} ]); if (e) throw e; var ev = eventObject; var etype = this.type = ev.type.toLowerCase(); this.rawEvent = ev; this.altKey = ev.altKey; if (typeof(ev.button) !== 'undefined') { this.button = (typeof(ev.which) !== 'undefined') ? ev.button : (ev.button === 4) ? Sys.UI.MouseButton.middleButton : (ev.button === 2) ? Sys.UI.MouseButton.rightButton : Sys.UI.MouseButton.leftButton; } if (etype === 'keypress') { this.charCode = ev.charCode || ev.keyCode; } else if (ev.keyCode && (ev.keyCode === 46)) { this.keyCode = 127; } else { this.keyCode = ev.keyCode; } this.clientX = ev.clientX; this.clientY = ev.clientY; this.ctrlKey = ev.ctrlKey; this.target = ev.target || ev.srcElement; if (!etype.startsWith('key')) { if ((typeof(ev.offsetX) !== 'undefined') && (typeof(ev.offsetY) !== 'undefined')) { this.offsetX = ev.offsetX; this.offsetY = ev.offsetY; } else if (this.target && (this.target.nodeType !== 3) && (typeof(ev.clientX) === 'number')) { var loc = Sys.UI.DomElement.getLocation(this.target); var w = Sys.UI.DomElement._getWindow(this.target); this.offsetX = (w.pageXOffset || 0) + ev.clientX - loc.x; this.offsetY = (w.pageYOffset || 0) + ev.clientY - loc.y; } } this.screenX = ev.screenX; this.screenY = ev.screenY; this.shiftKey = ev.shiftKey; } $type.prototype = { preventDefault: function DomEvent$preventDefault() { /// Prevents the default event action from happening. For example, a textbox keydown event, if suppressed, will prevent the character from being appended to the textbox. if (arguments.length !== 0) throw Error.parameterCount(); var raw = this.rawEvent; if (raw.preventDefault) { raw.preventDefault(); } else if (window.event) { raw.returnValue = false; } }, stopPropagation: function DomEvent$stopPropagation() { /// Prevents the event from being propagated to parent elements. if (arguments.length !== 0) throw Error.parameterCount(); var raw = this.rawEvent; if (raw.stopPropagation) { raw.stopPropagation(); } else if (window.event) { raw.cancelBubble = true; } } } $type.registerClass('Sys.UI.DomEvent'); $addHandler = $type.addHandler = function DomEvent$addHandler(elements, eventName, handler, autoRemove) { /// A cross-browser way to add a DOM event handler to an element. /// The element or text node, or array of elements or text nodes, that exposes the event. You may also pass a DOM selector or array of DOM selectors. /// The name of the event. Do not include the 'on' prefix, for example, 'click' instead of 'onclick'. /// The event handler to add. /// Whether the handler should be removed automatically when the element is disposed of, such as when an UpdatePanel refreshes, or Sys.Application.disposeElement is called. var e = Function._validateParams(arguments, [ {name: "elements"}, {name: "eventName", type: String}, {name: "handler", type: Function}, {name: "autoRemove", type: Boolean, mayBeNull: true, optional: true} ]); if (e) throw e; if (eventName === "error") throw Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError); Sys.query(elements).each(function() { var nodeType = this.nodeType; if (nodeType === 3 || nodeType === 2 || nodeType === 8) return; Sys.UI.DomEvent._ensureDomNode(this); if (!this._events) { this._events = {}; } var eventCache = this._events[eventName]; if (!eventCache) { this._events[eventName] = eventCache = []; } var element = this, browserHandler; if (this.addEventListener) { browserHandler = function(e) { return handler.call(element, new Sys.UI.DomEvent(e)); } this.addEventListener(eventName, browserHandler, false); } else if (this.attachEvent) { browserHandler = function() { var ex, ev = {}; try {ev = Sys.UI.DomElement._getWindow(element).event} catch(ex) {} return handler.call(element, new Sys.UI.DomEvent(ev)); } this.attachEvent('on' + eventName, browserHandler); } eventCache.push({handler: handler, browserHandler: browserHandler, autoRemove: autoRemove }); if (autoRemove) { Sys.UI.DomElement._onDispose(this, Sys.UI.DomEvent._disposeHandlers); } }); } Sys.registerPlugin({ name: "addHandler", dom: true, returnType: "Sys.ElementSet", description: "A cross-browser way to add a DOM event handler to an element.", parameters: [ {name: "eventName", type: "String", description: "The name of the event. Do not include the 'on' prefix, for example, 'click' instead of 'onclick'."}, {name: "handler", type: "Function", description: "The event handler to add."}, {name: "autoRemove", type: "Boolean", description: "Whether the handler should be removed automatically when the element is disposed of, such as when an UpdatePanel refreshes, or Sys.Application.disposeElement is called."} ], plugin: function (eventName, handler, autoRemove) { Sys.UI.DomEvent.addHandler(this.get(), eventName, handler, autoRemove); return this; } }); $addHandlers = $type.addHandlers = function DomEvent$addHandlers(elements, events, handlerOwner, autoRemove) { /// Adds a list of event handlers to an element. If a handlerOwner is specified, delegates are created with each of the handlers. /// The element or text node, or array of element or text nodes, that exposes the event. You may also pass a DOM selector or array of DOM selectors. /// A dictionary of event handlers. /// The owner of the event handlers that will be the this pointer for the delegates that will be created from the handlers. /// Whether the handler should be removed automatically when the element is disposed of, such as when an UpdatePanel refreshes, or when Sys.Application.disposeElement is called. var e = Function._validateParams(arguments, [ {name: "elements"}, {name: "events", type: Object}, {name: "handlerOwner", mayBeNull: true, optional: true}, {name: "autoRemove", type: Boolean, mayBeNull: true, optional: true} ]); if (e) throw e; Sys.query(elements).each(function() { var nodeType = this.nodeType; if (nodeType === 3 || nodeType === 2 || nodeType === 8) return; Sys.UI.DomEvent._ensureDomNode(this); for (var name in events) { var handler = events[name]; if (typeof(handler) !== 'function') throw Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler); if (handlerOwner) { handler = Function.createDelegate(handlerOwner, handler); } $addHandler(this, name, handler, autoRemove || false); } }); } Sys.registerPlugin({ name: "addHandlers", dom: true, returnType: "Sys.ElementSet", description: "Adds a list of event handlers to an element. If a handlerOwner is specified, delegates are created with each of the handlers.", parameters: [ {name: "events", type: "Object", description: "A dictionary of event handlers."}, {name: "handlerOwner", description: "The owner of the event handlers that will be the this pointer for the delegates that will be created from the handlers."}, {name: "autoRemove", type: "Boolean", description: "Whether the handler should be removed automatically when the element is disposed of, such as when an UpdatePanel refreshes, or Sys.Application.disposeElement is called."} ], plugin: function (events, handlerOwner, autoRemove) { Sys.UI.DomEvent.addHandlers(this.get(), events, handlerOwner, autoRemove); return this; } }); $clearHandlers = $type.clearHandlers = function DomEvent$clearHandlers(elements) { /// Clears all the event handlers that were added to the element or array of elements. /// The element or text node, or an array of elements or text nodes. You may also pass a DOM selector or array of DOM selectors. var e = Function._validateParams(arguments, [ {name: "elements"} ]); if (e) throw e; Sys.query(elements).each(function() { var nodeType = this.nodeType; if (nodeType === 3 || nodeType === 2 || nodeType === 8) return; Sys.UI.DomEvent._ensureDomNode(this); Sys.UI.DomEvent._clearHandlers(this, false); }); } Sys.registerPlugin({ name: "clearHandlers", dom: true, returnType: "Sys.ElementSet", description: "Clears all the event handlers that were added to the element or array of elements.", plugin: function() { Sys.UI.DomEvent.clearHandlers(this.get()); return this; } }); $type._clearHandlers = function DomEvent$_clearHandlers(elements, autoRemoving) { Sys.query(elements).each(function() { var nodeType = this.nodeType; if (nodeType === 3 || nodeType === 2 || nodeType === 8) return; Sys.UI.DomEvent._ensureDomNode(this); var cache = this._events; if (cache) { for (var name in cache) { var handlers = cache[name]; for (var i = handlers.length - 1; i >= 0; i--) { var entry = handlers[i]; if (!autoRemoving || entry.autoRemove) { $removeHandler(this, name, entry.handler); } } } } }); } $type._disposeHandlers = function DomEvent$_disposeHandlers() { Sys.UI.DomEvent._clearHandlers(this, true); } $removeHandler = $type.removeHandler = function DomEvent$removeHandler(elements, eventName, handler) { /// A cross-browser way to remove a DOM event handler from an element. /// The element or text node, or array of elements or text nodes, that exposes the event. You may also pass a DOM selector or array of DOM selectors. /// The name of the event. Do not include the 'on' prefix, for example, 'click' instead of 'onclick'. /// The event handler to remove. var e = Function._validateParams(arguments, [ {name: "elements"}, {name: "eventName", type: String}, {name: "handler", type: Function} ]); if (e) throw e; Sys.UI.DomEvent._removeHandler(elements, eventName, handler); } $type._removeHandler = function DomEvent$_removeHandler(elements, eventName, handler) { Sys.query(elements).each(function() { var nodeType = this.nodeType; if (nodeType === 3 || nodeType === 2 || nodeType === 8) return; Sys.UI.DomEvent._ensureDomNode(this); var browserHandler = null; if ((typeof(this._events) !== 'object') || !this._events) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid); var cache = this._events[eventName]; if (!(cache instanceof Array)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid); for (var i = 0, l = cache.length; i < l; i++) { if (cache[i].handler === handler) { browserHandler = cache[i].browserHandler; break; } } if (typeof(browserHandler) !== 'function') throw Error.invalidOperation(Sys.Res.eventHandlerInvalid); if (this.removeEventListener) { this.removeEventListener(eventName, browserHandler, false); } else if (this.detachEvent) { this.detachEvent('on' + eventName, browserHandler); } cache.splice(i, 1); }); } Sys.registerPlugin({ name: "removeHandler", dom: true, returnType: "Sys.ElementSet", description: "A cross-browser way to remove a DOM event handler from an element.", parameters: [ {name: "eventName", type: "String", description: "The name of the event. Do not include the 'on' prefix, for example, 'click' instead of 'onclick'."}, {name: "handler", type: "Function", description: "The event handler to remove."} ], plugin: function (eventName, handler) { Sys.UI.DomEvent.removeHandler(this.get(), eventName, handler); return this; } }); $type._ensureDomNode = function DomEvent$_ensureDomNode(element) { if (element && element.tagName && (element.tagName.toUpperCase() === "SCRIPT")) return; var doc = element ? (element.ownerDocument || element.document || element) : null; if (!element || ((typeof(element.document) !== 'object') && (element != doc) && (typeof(element.nodeType) !== 'number'))) { throw Error.argument("element", Sys.Res.argumentDomNode); } } $type = Sys.UI.DomElement = function DomElement() { /// This static class provides helpers to work with DOM elements. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } $type.registerClass('Sys.UI.DomElement'); $type.addCssClass = function DomElement$addCssClass(element, className) { /// Adds a CSS class to an element if it doesn't already have it. /// /// The name of the CSS class to add. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; if (!Sys.UI.DomElement.containsCssClass(element, className)) { if (element.className === '') { element.className = className; } else { element.className += ' ' + className; } } } $type.containsCssClass = function DomElement$containsCssClass(element, className) { /// Determines if an element has the specified CSS class. /// /// The name of the CSS class to test. /// True if the CSS class was found on the element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; return Array.contains(element.className.split(' '), className); } $type.getBounds = function DomElement$getBounds(element) { /// Gets the coordinates, width and height of an element. /// /// A Bounds object with four fields, x, y, width and height, which contain the pixel coordinates, width and height of the element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; var offset = Sys.UI.DomElement.getLocation(element); return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0); } $get = $type.getElementById = function DomElement$getElementById(id, element) { /// Finds an element by id. /// The id of the element to find. /// /// The element, or null if it was not found. var e = Function._validateParams(arguments, [ {name: "id", type: String}, {name: "element", mayBeNull: true, domElement: true, optional: true} ]); if (e) throw e; return Sys.get("#" + id, element || null); } if (document.documentElement.getBoundingClientRect) { $type.getLocation = function DomElement$getLocation(element) { /// Gets the coordinates of a DOM element. /// /// A Point object with two fields, x and y, which contain the pixel coordinates of the element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (element.self || element.nodeType === 9 || (element === document.documentElement) || (element.parentNode === element.ownerDocument.documentElement)) { return new Sys.UI.Point(0, 0); } var clientRect = element.getBoundingClientRect(); if (!clientRect) { return new Sys.UI.Point(0,0); } var ex, ownerDoc = element.ownerDocument, documentElement = ownerDoc.documentElement, offsetX = Math.round(clientRect.left) + (documentElement.scrollLeft || (ownerDoc.body ? ownerDoc.body.scrollLeft : 0)), offsetY = Math.round(clientRect.top) + (documentElement.scrollTop || (ownerDoc.body ? ownerDoc.body.scrollTop : 0)); if (isBrowser("InternetExplorer")) { try { var f = element.ownerDocument.parentWindow.frameElement || null; if (f) { f = f.frameBorder; var offset = (f === "0" || f === "no") ? 2 : 0; offsetX += offset; offsetY += offset; } } catch(ex) { } if (Sys.Browser.version === 7 && !document.documentMode) { var body = document.body, rect = body.getBoundingClientRect(), zoom = (rect.right-rect.left) / body.clientWidth; zoom = Math.round(zoom * 100); zoom = (zoom - zoom % 5) / 100; if (!isNaN(zoom) && (zoom !== 1)) { offsetX = Math.round(offsetX / zoom); offsetY = Math.round(offsetY / zoom); } } if ((document.documentMode || 0) < 8) { offsetX -= documentElement.clientLeft; offsetY -= documentElement.clientTop; } } return new Sys.UI.Point(offsetX, offsetY); } } else if (isBrowser("Safari")) { $type.getLocation = function DomElement$getLocation_Safari(element) { /// Gets the coordinates of a DOM element. /// /// A Point object with two fields, x and y, which contain the pixel coordinates of the element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0); var offsetX = 0, offsetY = 0, parent, previous = null, previousStyle = null, currentStyle; for (parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) { currentStyle = Sys.UI.DomElement._getCurrentStyle(parent); var tagName = parent.tagName ? parent.tagName.toUpperCase() : null; if ((parent.offsetLeft || parent.offsetTop) && ((tagName !== "BODY") || (!previousStyle || previousStyle.position !== "absolute"))) { offsetX += parent.offsetLeft; offsetY += parent.offsetTop; } if (previous && Sys.Browser.version >= 3) { offsetX += parseInt(currentStyle.borderLeftWidth); offsetY += parseInt(currentStyle.borderTopWidth); } } currentStyle = Sys.UI.DomElement._getCurrentStyle(element); var elementPosition = currentStyle ? currentStyle.position : null; if (elementPosition !== "absolute") { for (parent = element.parentNode; parent; parent = parent.parentNode) { tagName = parent.tagName ? parent.tagName.toUpperCase() : null; if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) { offsetX -= (parent.scrollLeft || 0); offsetY -= (parent.scrollTop || 0); } currentStyle = Sys.UI.DomElement._getCurrentStyle(parent); var parentPosition = currentStyle ? currentStyle.position : null; if (parentPosition && (parentPosition === "absolute")) break; } } return new Sys.UI.Point(offsetX, offsetY); } } else { $type.getLocation = function DomElement$getLocation_Generic(element) { /// Gets the coordinates of a DOM element. /// /// A Point object with two fields, x and y, which contain the pixel coordinates of the element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0); var offsetX = 0, offsetY = 0, parent, previous = null, previousStyle = null, currentStyle = null; for (parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) { var tagName = parent.tagName ? parent.tagName.toUpperCase() : null; currentStyle = Sys.UI.DomElement._getCurrentStyle(parent); if ((parent.offsetLeft || parent.offsetTop) && !((tagName === "BODY") && (!previousStyle || previousStyle.position !== "absolute"))) { offsetX += parent.offsetLeft; offsetY += parent.offsetTop; } if (previous !== null && currentStyle) { if ((tagName !== "TABLE") && (tagName !== "TD") && (tagName !== "HTML")) { offsetX += parseInt(currentStyle.borderLeftWidth) || 0; offsetY += parseInt(currentStyle.borderTopWidth) || 0; } if (tagName === "TABLE" && (currentStyle.position === "relative" || currentStyle.position === "absolute")) { offsetX += parseInt(currentStyle.marginLeft) || 0; offsetY += parseInt(currentStyle.marginTop) || 0; } } } currentStyle = Sys.UI.DomElement._getCurrentStyle(element); var elementPosition = currentStyle ? currentStyle.position : null; if (elementPosition !== "absolute") { for (parent = element.parentNode; parent; parent = parent.parentNode) { tagName = parent.tagName ? parent.tagName.toUpperCase() : null; if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) { offsetX -= (parent.scrollLeft || 0); offsetY -= (parent.scrollTop || 0); currentStyle = Sys.UI.DomElement._getCurrentStyle(parent); if (currentStyle) { offsetX += parseInt(currentStyle.borderLeftWidth) || 0; offsetY += parseInt(currentStyle.borderTopWidth) || 0; } } } } return new Sys.UI.Point(offsetX, offsetY); } } $type.isDomElement = function DomElement$isDomElement(obj) { /// Determines if the given argument is a DOM element. /// /// True if the object is a DOM element, otherwise false. var e = Function._validateParams(arguments, [ {name: "obj"} ]); if (e) throw e; return Sys._isDomElement(obj); } $type.removeCssClass = function DomElement$removeCssClass(element, className) { /// Removes a CSS class from an element. /// /// The name of the CSS class to remove. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; var currentClassName = ' ' + element.className + ' '; var index = currentClassName.indexOf(' ' + className + ' '); if (index >= 0) { element.className = (currentClassName.substr(0, index) + ' ' + currentClassName.substring(index + className.length + 1, currentClassName.length)).trim(); } } $type.resolveElement = function DomElement$resolveElement(elementOrElementId, containerElement) { /// Returns the element with the specified Id in the specified container, or the element if it is already an element. /// /// /// var e = Function._validateParams(arguments, [ {name: "elementOrElementId", mayBeNull: true}, {name: "containerElement", mayBeNull: true, domElement: true, optional: true} ]); if (e) throw e; var el = elementOrElementId; if (!el) return null; if (typeof(el) === "string") { el = Sys.get("#" + el, containerElement); if (!el) { throw Error.argument("elementOrElementId", String.format(Sys.Res.elementNotFound, elementOrElementId)); } } else if(!Sys.UI.DomElement.isDomElement(el)) { throw Error.argument("elementOrElementId", Sys.Res.expectedElementOrId); } return el; } $type.raiseBubbleEvent = function DomElement$raiseBubbleEvent(source, args) { /// Raises a bubble event. /// The DOM element that triggers the event. /// The event arguments. var e = Function._validateParams(arguments, [ {name: "source", domElement: true}, {name: "args", type: Sys.EventArgs} ]); if (e) throw e; var target = source; while (target) { var control = target.control; if (control && control.onBubbleEvent && control.raiseBubbleEvent) { if (!control.onBubbleEvent(source, args)) { control._raiseBubbleEvent(source, args); } return; } target = target.parentNode; } } $type._ensureGet = function DomElement$_ensureGet(selector, context, arg) { var ret = Sys.get(selector, context); if (!ret && typeof(selector) === "string") { throw Error.invalidOperation(String.format(Sys.Res.selectorNotFound, selector)); } else if (ret && !this.isDomElement(ret)) { throw Error.invalidOperation(String.format(Sys.Res.expectedDomElementOrSelector, arg)); } return ret; } $type.setLocation = function DomElement$setLocation(element, x, y) { /// Sets the position of an element. /// /// /// var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true} ]); if (e) throw e; var style = element.style; style.position = 'absolute'; style.left = x + "px"; style.top = y + "px"; } $type.toggleCssClass = function DomElement$toggleCssClass(element, className) { /// Toggles a CSS class on and off o an element. /// /// The name of the CSS class to toggle. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; if (Sys.UI.DomElement.containsCssClass(element, className)) { Sys.UI.DomElement.removeCssClass(element, className); } else { Sys.UI.DomElement.addCssClass(element, className); } } $type.getVisibilityMode = function DomElement$getVisibilityMode(element) { /// /// /// var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; return (element._visibilityMode === Sys.UI.VisibilityMode.hide) ? Sys.UI.VisibilityMode.hide : Sys.UI.VisibilityMode.collapse; } $type.setVisibilityMode = function DomElement$setVisibilityMode(element, value) { /// /// /// var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "value", type: Sys.UI.VisibilityMode} ]); if (e) throw e; Sys.UI.DomElement._ensureOldDisplayMode(element); if (element._visibilityMode !== value) { element._visibilityMode = value; if (Sys.UI.DomElement.getVisible(element) === false) { element.style.display = (value === Sys.UI.VisibilityMode.hide) ? element._oldDisplayMode : 'none'; } } } $type.getVisible = function DomElement$getVisible(element) { /// /// /// var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element); return style ? (style.visibility !== 'hidden') && (style.display !== 'none') : true; } $type.setVisible = function DomElement$setVisible(element, value) { /// /// /// var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "value", type: Boolean} ]); if (e) throw e; if (value !== Sys.UI.DomElement.getVisible(element)) { Sys.UI.DomElement._ensureOldDisplayMode(element); var style = element.style; style.visibility = value ? 'visible' : 'hidden'; style.display = (value || (element._visibilityMode === Sys.UI.VisibilityMode.hide)) ? element._oldDisplayMode : 'none'; } } $type.setCommand = function DomElement$setCommand(commandSource, commandName, commandArgument, commandTarget) { /// Causes a DOM element to raise a bubble event when clicked. /// The DOM element, array of DOM elements, or DOM element selectors that causes the event when clicked. /// The name of the command to raise. /// Optional command argument. /// DOM element from which the command should start bubbling up. var e = Function._validateParams(arguments, [ {name: "commandSource"}, {name: "commandName", type: String, mayBeNull: true}, {name: "commandArgument", mayBeNull: true, optional: true}, {name: "commandTarget", mayBeNull: true, optional: true} ]); if (e) throw e; Sys.UI.DomEvent.addHandler(commandSource, 'click', function(ev) { var source = commandTarget || this; Sys.UI.DomElement.raiseBubbleEvent(source, new Sys.CommandEventArgs(commandName, commandArgument, this, ev)); }, true /*autoRemove*/); } Sys.registerPlugin({ name: "setCommand", dom: true, returnType: "Sys.ElementSet", description: "Causes a DOM element to raise a bubble event when clicked.", parameters: [ {name: "commandName", type:"String", description: "The name of the command to raise."}, {name: "commandArgument", description: "Optional command argument."}, {name: "commandTarget", description: "DOM element from which the command should start bubbling up."} ], plugin: function(commandName, commandArgument, commandTarget) { var e = Function._validateParams(arguments, [ {name: "commandName", type: String, mayBeNull: true}, {name: "commandArgument", mayBeNull: true, optional: true}, {name: "commandTarget", mayBeNull: true, optional: true} ]); if (e) throw e; return this.addHandler('click', function(ev) { var source = commandTarget || this; Sys.UI.DomElement.raiseBubbleEvent(source, new Sys.CommandEventArgs(commandName, commandArgument, this, ev)); }, true /*autoRemove*/); } }); $type._ensureOldDisplayMode = function DomElement$_ensureOldDisplayMode(element) { if (!element._oldDisplayMode) { var style = element.currentStyle || this._getCurrentStyle(element); element._oldDisplayMode = style ? style.display : null; if (!element._oldDisplayMode || element._oldDisplayMode === 'none') { var tagName = element.tagName, mode = 'inline'; if (/^(DIV|P|ADDRESS|BLOCKQUOTE|BODY|COL|COLGROUP|DD|DL|DT|FIELDSET|FORM|H1|H2|H3|H4|H5|H6|HR|IFRAME|LEGEND|OL|PRE|TABLE|TD|TH|TR|UL)$/i.test(tagName)) { mode = 'block'; } else if (tagName.toUpperCase() === "LI") { mode = 'list-item'; } element._oldDisplayMode = mode; } } } $type._getWindow = function DomElement$_getWindow(element) { var doc = element.ownerDocument || element.document || element; return doc.defaultView || doc.parentWindow; } $type._getCurrentStyle = function DomElement$_getCurrentStyle(element) { if (element.nodeType === 3) return null; var w = this._getWindow(element); if (element.documentElement) element = element.documentElement; var computedStyle = (w && (element !== w) && w.getComputedStyle) ? w.getComputedStyle(element, null) : element.currentStyle || element.style; return computedStyle; } $type._onDispose = function DomElement$_onDispose(element, fn) { var queue, d = element.dispose; if (d !== Sys.UI.DomElement._dispose) { element.dispose = Sys.UI.DomElement._dispose; element.__msajaxdispose = queue = []; if (typeof(d) === "function") { queue.push(d); } } else { queue = element.__msajaxdispose; } queue.push(fn); } $type._dispose = function DomElement$_dispose() { var queue = this.__msajaxdispose; if (queue) { for (var i = 0, l = queue.length; i < l; i++) { queue[i].apply(this); } } if (this.control && typeof(this.control.dispose) === "function") { this.control.dispose(); } this.__msajaxdispose = null; this.dispose = null; } $type = Sys.IContainer = function IContainer() { throw Error.notImplemented(); } $type.prototype = { addComponent: function IContainer$addComponent(component) { /// /// var e = Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; throw Error.notImplemented(); }, removeComponent: function IContainer$removeComponent(component) { /// /// var e = Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; throw Error.notImplemented(); }, findComponent: function IContainer$findComponent(id) { /// /// /// var e = Function._validateParams(arguments, [ {name: "id", type: String} ]); if (e) throw e; throw Error.notImplemented(); }, getComponents: function IContainer$getComponents() { /// /// if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } } $type.registerInterface("Sys.IContainer"); $type = Sys.ApplicationLoadEventArgs = function ApplicationLoadEventArgs(components, isPartialLoad) { /// /// The list of components that were created since the last time the load event was raised. /// True if the page is partially loading. var e = Function._validateParams(arguments, [ {name: "components", type: Array, elementType: Sys.Component}, {name: "isPartialLoad", type: Boolean} ]); if (e) throw e; Sys.ApplicationLoadEventArgs.initializeBase(this); this._components = components; this._isPartialLoad = isPartialLoad; } $type.prototype = { get_components: function ApplicationLoadEventArgs$get_components() { /// The list of components that were created since the last time the load event was raised. if (arguments.length !== 0) throw Error.parameterCount(); return this._components; }, get_isPartialLoad: function ApplicationLoadEventArgs$get_isPartialLoad() { /// True if the page is partially loading. if (arguments.length !== 0) throw Error.parameterCount(); return this._isPartialLoad; } } $type.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs); $type = Sys._Application = function _Application() { /// if (arguments.length !== 0) throw Error.parameterCount(); Sys._Application.initializeBase(this); this._disposableObjects = []; this._components = {}; this._createdComponents = []; this._secondPassComponents = []; this._unloadHandlerDelegate = Function.createDelegate(this, this._unloadHandler); Sys.UI.DomEvent.addHandler(window, "unload", this._unloadHandlerDelegate); } $type.prototype = { _deleteCount: 0, get_isCreatingComponents: function _Application$get_isCreatingComponents() { /// if (arguments.length !== 0) throw Error.parameterCount(); return !!this._creatingComponents; }, get_isDisposing: function _Application$get_isDisposing() { /// if (arguments.length !== 0) throw Error.parameterCount(); return !!this._disposing; }, add_init: function _Application$add_init(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; if (this._initialized) { handler(this, Sys.EventArgs.Empty); } else { this._addHandler("init", handler); } }, remove_init: function _Application$remove_init(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._removeHandler("init", handler); }, add_load: function _Application$add_load(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._addHandler("load", handler); }, remove_load: function _Application$remove_load(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._removeHandler("load", handler); }, add_unload: function _Application$add_unload(handler) { /// var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._addHandler("unload", handler); }, remove_unload: function _Application$remove_unload(handler) { var e = Function._validateParams(arguments, [{name: "handler", type: Function}]); if (e) throw e; this._removeHandler("unload", handler); }, addComponent: function _Application$addComponent(component) { /// Adds a top-level component to the application. /// The component to add. var e = Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; var id = component.get_id(); if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId); if (typeof(this._components[id]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, id)); this._components[id] = component; }, beginCreateComponents: function _Application$beginCreateComponents() { /// if (arguments.length !== 0) throw Error.parameterCount(); this._creatingComponents = true; }, dispose: function _Application$dispose() { /// if (arguments.length !== 0) throw Error.parameterCount(); if (!this._disposing) { this._disposing = true; if (this._timerCookie) { window.clearTimeout(this._timerCookie); delete this._timerCookie; } var endHandler = this._endRequestHandler; var beginHandler = this._beginRequestHandler; if (endHandler || beginHandler) { var prm = Sys.WebForms.PageRequestManager.getInstance(); if (endHandler) prm.remove_endRequest(endHandler); if (beginHandler) prm.remove_beginRequest(beginHandler); delete this._endRequestHandler; delete this._beginRequestHandler; } if (window.pageUnload) { window.pageUnload(this, Sys.EventArgs.Empty); } Sys.Observer.raiseEvent(this, "unload"); var disposableObjects = Array.clone(this._disposableObjects); for (var i = 0, l = disposableObjects.length; i < l; i++) { var object = disposableObjects[i]; if (typeof(object) !== "undefined") { object.dispose(); } } this._disposableObjects.length = 0; Sys.UI.DomEvent.removeHandler(window, "unload", this._unloadHandlerDelegate); if (Sys._ScriptLoader) { var sl = Sys._ScriptLoader.getInstance(); if (sl) { sl.dispose(); } } Sys._Application.callBaseMethod(this, 'dispose'); } }, disposeElement: function _Application$disposeElement(element, childNodesOnly) { /// Disposes of control and behavior resources associated with an element and its child nodes. /// The element to dispose. /// Whether to dispose of the element and its child nodes or only its child nodes. var e = Function._validateParams(arguments, [ {name: "element"}, {name: "childNodesOnly", type: Boolean} ]); if (e) throw e; if (element.nodeType === 1) { var d, c, i, list, allElements = element.getElementsByTagName("*"), length = allElements.length, children = new Array(length); for (i = 0; i < length; i++) { children[i] = allElements[i]; } for (i = length - 1; i >= 0; i--) { var child = children[i]; d = child.dispose; if (d && typeof(d) === "function") { child.dispose(); } else { c = child.control; if (c && typeof(c.dispose) === "function") { c.dispose(); } } list = child._behaviors; if (list) { this._disposeComponents(list); } list = child._components; if (list) { this._disposeComponents(list); child._components = null; } } if (!childNodesOnly) { d = element.dispose; if (d && typeof(d) === "function") { element.dispose(); } else { c = element.control; if (c && typeof(c.dispose) === "function") { c.dispose(); } } list = element._behaviors; if (list) { this._disposeComponents(list); } list = element._components; if (list) { this._disposeComponents(list); element._components = null; } } } }, endCreateComponents: function _Application$endCreateComponents() { /// if (arguments.length !== 0) throw Error.parameterCount(); var components = this._secondPassComponents; for (var i = 0, l = components.length; i < l; i++) { var entry = components[i], component = entry.component; Sys.Component._setReferences(component, entry.references); component.endUpdate(); } this._secondPassComponents = []; this._creatingComponents = false; }, findComponent: function _Application$findComponent(id, parent) { /// Finds top-level components that were added through addComponent if no parent is specified or children of the specified parent. If parent is a component /// The id of the component to find. /// The component or element that contains the component to find. If not specified or null, the search is made on Application. /// The component, or null if it wasn't found. var e = Function._validateParams(arguments, [ {name: "id", type: String}, {name: "parent", mayBeNull: true, optional: true} ]); if (e) throw e; return (parent ? ((Sys.IContainer.isInstanceOfType(parent)) ? parent.findComponent(id) : parent[id] || null) : Sys.Application._components[id] || null); }, getComponents: function _Application$getComponents() { /// /// if (arguments.length !== 0) throw Error.parameterCount(); var res = []; var components = this._components; for (var name in components) { if (components.hasOwnProperty(name)) { res.push(components[name]); } } return res; }, initialize: function _Application$initialize() { /// if (arguments.length !== 0) throw Error.parameterCount(); window.setTimeout(Function.createDelegate(this, this._doInitialize), 0); }, _doInitialize: function _Application$_doInitialize() { if(!this.get_isInitialized() && !this._disposing) { Sys._Application.callBaseMethod(this, 'initialize'); this._raiseInit(); if (this.get_stateString) { if (Sys.WebForms && Sys.WebForms.PageRequestManager) { var prm = Sys.WebForms.PageRequestManager.getInstance(); this._beginRequestHandler = Function.createDelegate(this, this._onPageRequestManagerBeginRequest); prm.add_beginRequest(this._beginRequestHandler); this._endRequestHandler = Function.createDelegate(this, this._onPageRequestManagerEndRequest); prm.add_endRequest(this._endRequestHandler); } var loadedEntry = this.get_stateString(); if (loadedEntry !== this._currentEntry) { this._navigate(loadedEntry); } else { this._ensureHistory(); } } this.raiseLoad(); } }, notifyScriptLoaded: function _Application$notifyScriptLoaded() { /// Called by referenced scripts to indicate that they have completed loading. [Obsolete] if (arguments.length !== 0) throw Error.parameterCount(); }, registerDisposableObject: function _Application$registerDisposableObject(object) { /// Registers a disposable object with the application. /// The object to register. var e = Function._validateParams(arguments, [ {name: "object", type: Sys.IDisposable} ]); if (e) throw e; if (!this._disposing) { var objects = this._disposableObjects, i = objects.length; objects[i] = object; object.__msdisposeindex = i; } }, raiseLoad: function _Application$raiseLoad() { /// if (arguments.length !== 0) throw Error.parameterCount(); var args = new Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), !!this._loaded); this._loaded = true; Sys.Observer.raiseEvent(this, "load", args); if (window.pageLoad) { window.pageLoad(this, args); } this._createdComponents = []; }, removeComponent: function _Application$removeComponent(component) { /// Removes a top-level component from the application. /// The component to remove. var e = Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; var id = component.get_id(); if (id) delete this._components[id]; }, unregisterDisposableObject: function _Application$unregisterDisposableObject(object) { /// Unregisters a disposable object from the application. /// The object to unregister. var e = Function._validateParams(arguments, [ {name: "object", type: Sys.IDisposable} ]); if (e) throw e; if (!this._disposing) { var i = object.__msdisposeindex; if (typeof(i) === "number") { var disposableObjects = this._disposableObjects; delete disposableObjects[i]; delete object.__msdisposeindex; if (++this._deleteCount > 1000) { var newArray = []; for (var j = 0, l = disposableObjects.length; j < l; j++) { object = disposableObjects[j]; if (typeof(object) !== "undefined") { object.__msdisposeindex = newArray.length; newArray.push(object); } } this._disposableObjects = newArray; this._deleteCount = 0; } } } }, _addComponentToSecondPass: function _Application$_addComponentToSecondPass(component, references) { this._secondPassComponents.push({component: component, references: references}); }, _disposeComponents: function _Application$_disposeComponents(list) { if (list) { for (var i = list.length - 1; i >= 0; i--) { var item = list[i]; if (typeof(item.dispose) === "function") { item.dispose(); } } } }, _raiseInit: function _Application$_raiseInit() { this.beginCreateComponents(); Sys.Observer.raiseEvent(this, "init"); this.endCreateComponents(); }, _unloadHandler: function _Application$_unloadHandler(event) { this.dispose(); } } $type.registerClass('Sys._Application', Sys.Component, Sys.IContainer); Sys.Application = new Sys._Application(); window.$find = Sys.Application.findComponent; Sys.onReady(function() { Sys.Application._doInitialize(); }); $type = Sys.UI.Behavior = function Behavior(element) { /// /// The DOM element the behavior is associated with. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; Sys.UI.Behavior.initializeBase(this); this._element = element; var behaviors = (element._behaviors = element._behaviors || []); behaviors.push(this); } $type.prototype = { get_element: function Behavior$get_element() { /// The DOM element this behavior is associated with if (arguments.length !== 0) throw Error.parameterCount(); return this._element; }, get_id: function Behavior$get_id() { /// if (arguments.length !== 0) throw Error.parameterCount(); var baseId = Sys.UI.Behavior.callBaseMethod(this, 'get_id'); if (baseId) return baseId; var element = this._element; if (!element || !element.id) return ''; return element.id + '$' + this.get_name(); }, get_name: function Behavior$get_name() { /// if (arguments.length !== 0) throw Error.parameterCount(); if (this._name) return this._name; var name = Object.getTypeName(this); var i = name.lastIndexOf('.'); if (i >= 0) name = name.substr(i + 1); if (!this._initialized) this._name = name; return name; }, set_name: function Behavior$set_name(value) { var e = Function._validateParams(arguments, [{name: "value", type: String}]); if (e) throw e; if ((value === '') || (value.charAt(0) === ' ') || (value.charAt(value.length - 1) === ' ')) throw Error.argument('value', Sys.Res.invalidId); if (typeof(this._element[value]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, value)); if (this.get_isInitialized()) throw Error.invalidOperation(Sys.Res.cantSetNameAfterInit); this._name = value; }, initialize: function Behavior$initialize() { Sys.UI.Behavior.callBaseMethod(this, 'initialize'); var name = this.get_name(); if (name) this._element[name] = this; }, dispose: function Behavior$dispose() { Sys.UI.Behavior.callBaseMethod(this, 'dispose'); var e = this._element; if (e) { var name = this.get_name(); if (name) { e[name] = null; } var behaviors = e._behaviors; Array.remove(behaviors, this); if (!behaviors.length) { e._behaviors = null; } delete this._element; } } } $type.registerClass('Sys.UI.Behavior', Sys.Component); $type.getBehaviorByName = function Behavior$getBehaviorByName(element, name) { /// Gets a behavior with the specified name from the dom element. /// The DOM element to inspect. /// The name of the behavior to look for. /// The behaviors or null if it was not found. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "name", type: String} ]); if (e) throw e; var b = element[name]; return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null; } $type.getBehaviors = function Behavior$getBehaviors(element) { /// Gets a collection containing the behaviors associated with an element. /// The DOM element. /// An array containing the behaviors associated with the DOM element. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; var behaviors = element._behaviors; return behaviors ? Array.clone(behaviors) : []; } Sys.UI.Behavior.getBehaviorsByType = function Behavior$getBehaviorsByType(element, type) { /// Gets an array of behaviors with the specified type from the dom element. /// The DOM element to inspect. /// The type of behavior to look for. /// An array containing the behaviors of the specified type found on the element. The array is empty if no behavior of this type was found. var e = Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "type", type: Type} ]); if (e) throw e; var behaviors = element._behaviors; var results = []; if (behaviors) { for (var i = 0, l = behaviors.length; i < l; i++) { var behavior = behaviors[i]; if (type.isInstanceOfType(behavior)) { results.push(behavior); } } } return results; } $type = Sys.UI.VisibilityMode = function VisibilityMode() { /// Describes how a DOM element should disappear when its visible property is set to false. /// The element disappears but its space remains /// The element disappears and the space it occupied is collapsed. if (arguments.length !== 0) throw Error.parameterCount(); throw Error.notImplemented(); } $type.prototype = { hide: 0, collapse: 1 } $type.registerEnum("Sys.UI.VisibilityMode"); $type = Sys.UI.Control = function Control(element) { /// /// The DOM element the behavior is associated with. var e = Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (element.control) throw Error.invalidOperation(Sys.Res.controlAlreadyDefined); Sys.UI.Control.initializeBase(this); this._element = element; element.control = this; var role = this.get_role(); if (role) { element.setAttribute("role", role); } } $type.prototype = { _parent: null, _visibilityMode: Sys.UI.VisibilityMode.hide, get_element: function Control$get_element() { /// The DOM element this behavior is associated with if (arguments.length !== 0) throw Error.parameterCount(); return this._element; }, get_id: function Control$get_id() { /// if (arguments.length !== 0) throw Error.parameterCount(); return this._id || (this._element ? this._element.id : ""); }, get_parent: function Control$get_parent() { /// if (arguments.length !== 0) throw Error.parameterCount(); if (this._parent) return this._parent; if (!this._element) return null; var parentElement = this._element.parentNode; while (parentElement) { if (parentElement.control) { return parentElement.control; } parentElement = parentElement.parentNode; } return null; }, set_parent: function Control$set_parent(value) { var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.Control}]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); var parents = [this]; var current = value; while (current) { if (Array.contains(parents, current)) throw Error.invalidOperation(Sys.Res.circularParentChain); parents.push(current); current = current.get_parent(); } this._parent = value; }, get_role: function Control$get_role() { /// if (arguments.length !== 0) throw Error.parameterCount(); return null; }, get_visibilityMode: function Control$get_visibilityMode() { /// if (arguments.length !== 0) throw Error.parameterCount(); if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); return Sys.UI.DomElement.getVisibilityMode(this._element); }, set_visibilityMode: function Control$set_visibilityMode(value) { var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.VisibilityMode}]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); Sys.UI.DomElement.setVisibilityMode(this._element, value); }, get_visible: function Control$get_visible() { /// if (arguments.length !== 0) throw Error.parameterCount(); if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); return Sys.UI.DomElement.getVisible(this._element); }, set_visible: function Control$set_visible(value) { var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); Sys.UI.DomElement.setVisible(this._element, value) }, addCssClass: function Control$addCssClass(className) { /// Adds a CSS class to the control if it doesn't already have it. /// The name of the CSS class to add. var e = Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); Sys.UI.DomElement.addCssClass(this._element, className); }, dispose: function Control$dispose() { Sys.UI.Control.callBaseMethod(this, 'dispose'); if (this._element) { this._element.control = null; delete this._element; } if (this._parent) delete this._parent; }, onBubbleEvent: function Control$onBubbleEvent(source, args) { /// /// The object that triggered the event. /// The event arguments. /// False, because the event was not handled and should bubble up further. Derived classes should override that and return true whenever they handle the event to prevent it from bubbling up. var e = Function._validateParams(arguments, [ {name: "source"}, {name: "args", type: Sys.EventArgs} ]); if (e) throw e; return false; }, raiseBubbleEvent: function Control$raiseBubbleEvent(source, args) { /// /// The object that triggered the event. /// The event arguments. var e = Function._validateParams(arguments, [ {name: "source"}, {name: "args", type: Sys.EventArgs} ]); if (e) throw e; this._raiseBubbleEvent(source, args); }, _raiseBubbleEvent: function Control$_raiseBubbleEvent(source, args) { var currentTarget = this.get_parent(); while (currentTarget) { if (currentTarget.onBubbleEvent(source, args)) { return; } currentTarget = currentTarget.get_parent(); } }, removeCssClass: function Control$removeCssClass(className) { /// Removes a CSS class from the control. /// The name of the CSS class to remove. var e = Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); Sys.UI.DomElement.removeCssClass(this._element, className); }, toggleCssClass: function Control$toggleCssClass(className) { /// Toggles a CSS class on and off on the control. /// The name of the CSS class to toggle. var e = Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose); Sys.UI.DomElement.toggleCssClass(this._element, className); } } $type.registerClass('Sys.UI.Control', Sys.Component); } if (window.Sys && Sys.loader) { Sys.loader.registerScript("ComponentModel", null, execute); } else { execute(); } })(); var $get, $create, $addHandler, $addHandlers, $clearHandlers; aType.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText.prototype={callMethod:function(){if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText.callBaseMethod(this,"callMethod"))return false;var a=this._designPanel;if(Sys.Extended.UI.HTMLEditor.isIE){a._saveContent();a.openWait();setTimeout(function(){a._paste(false);a.closeWait()},0)}else{var b=a._getSelection(),d=a._createRange(b),c=String.format(Sys.Extended.UI.Resources.HTMLEditor_toolbar_button_Use_verb,Sys.Extended.UI.HTMLEditor.isSafari&&navigator.userAgent.indexOf("mac")!=-1?"Apple-V":"Ctrl-V"),e=String.format(Sys.Extended.UI.Resources.HTMLEditor_toolbar_button_OnPastePlainText,c);alert(e);setTimeout(function(){a._removeAllRanges(b);a._selectRange(b,d)},0);a.isPlainText=true}}};Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.PasteText",Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton);UType.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton.prototype={set_activeEditPanel:function(c){var a=this;if(a._editPanel!=c&&a._editPanel!=null){var b=a.get_relatedPopup();if(typeof b._forceImClose=="function"){var d=b._forceImClose;d(b._iframe.contentWindow)}}Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton.callBaseMethod(a,"set_activeEditPanel",[c])},callMethod:function(){var a=this;if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton.callBaseMethod(a,"callMethod"))return false;a.openPopup(Function.createDelegate(a,a._onopened));return true},_onopened:function(b){var a=this;b.popupMediator.set_callMethodByName("OK",Function.createDelegate(a,a._onOK));b.popupMediator.set_callMethodByName("Cancel",Function.createDelegate(a,a._onCancel));var c=a.get_relatedPopup();c._popup=a._designPanel._popup;c._forceImClose=Function.createDelegate(a,a._onCancel);a._designPanel._popup=a.get_relatedPopup();a.opened(b)},opened:function(){},_onOK:function(b){var a=this;a.okCheck(b)&&a._exit(Function.createDelegate(a,a.ok),b)},_onCancel:function(b){var a=this;a.cancelCheck(b)&&a._exit(Function.createDelegate(a,a.cancel),b)},_exit:function(c,b){var a=this;a.closePopup();a._designPanel._popup=a.get_relatedPopup()._popup;a.get_relatedPopup()._popup=null;a.get_relatedPopup()._forceImClose=null;c(b)},ok:function(){},cancel:function(){},okCheck:function(){return true},cancelCheck:function(){return true}};Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.OkCancelPopupButton",Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignModePopupImageButton);&Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight.prototype={checkState:function(){return!Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight.callBaseMethod(this,"checkState")?false:this._designPanel._textAlignState("right")},callMethod:function(){if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight.callBaseMethod(this,"callMethod"))return false;this._designPanel._execCommand("JustifyRight")}};Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.JustifyRight",Sys.Extended.UI.HTMLEditor.ToolbarButton.EditorToggleButton);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent.prototype = { callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent.callBaseMethod(this, "callMethod")) return false; this._designPanel._execCommand("Indent"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.IncreaseIndent", Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton=function(b){var a=this;Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.initializeBase(a,[b]);a._normalSrc="";a._hoverSrc="";a._downSrc="";a._activeSrc="";a._downTimer=null};Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.prototype={get_normalSrc:function(){return this._normalSrc},set_normalSrc:function(b){this._normalSrc=b;var a=this.get_element();if(/none$/.test(a.src))a.src=b},get_hoverSrc:function(){return this._hoverSrc},set_hoverSrc:function(a){this._hoverSrc=a},get_downSrc:function(){return this._downSrc},set_downSrc:function(a){this._downSrc=a},get_activeSrc:function(){return this._activeSrc},set_activeSrc:function(a){this._activeSrc=a},isImage:function(){return true},_onmouseover:function(){var a=this;if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.callBaseMethod(a,"_onmouseover"))return false;if(a._hoverSrc.length>0)a.get_element().src=a._hoverSrc;return true},_onmouseout:function(){var a=this,b=a.get_element();if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.callBaseMethod(a,"_onmouseout"))return false;if(a._hoverSrc.length>0)if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_mousedown")&&a._downSrc.length>0)b.src=a._downSrc;else if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_active")&&a._activeSrc.length>0)b.src=a._activeSrc;else b.src=a._normalSrc;return true},_onmousedown:function(){var a=this;if(Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.callBaseMethod(a,"_onmousedown")===null)return null;if(a._downSrc.length>0){a.get_element().src=a._downSrc;a._downTimer=setTimeout(Function.createDelegate(a,a._onmouseup),1e3)}return true},_onmouseup:function(){var a=this,b=a.get_element();if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.callBaseMethod(a,"_onmouseup"))return false;if(a._downSrc.length>0){if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_hover")&&a._hoverSrc.length>0)b.src=a._hoverSrc;else if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_active")&&a._activeSrc.length>0)b.src=a._activeSrc;else b.src=a._normalSrc;if(a._downTimer!=null){clearTimeout(a._downTimer);a._downTimer=null}}return true},setActivity:function(c){var a=this,b=a.get_element();if(a._activeSrc.length>0)if(c){if(!Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_active"))b.src=a._activeSrc}else if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_active"))if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_mousedown")&&a._downSrc.length>0)b.src=a._downSrc;else if(Sys.UI.DomElement.containsCssClass(b,a._cssClass+"_hover")&&a._hoverSrc.length>0)b.src=a._hoverSrc;else b.src=a._normalSrc;Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.callBaseMethod(a,"setActivity",[c])}};Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.ImageButton",Sys.Extended.UI.HTMLEditor.ToolbarButton.CommonButton);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton");Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector=function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector.initializeBase(this,[a])};Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector.prototype={callMethod:function(){if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector.callBaseMethod(this,"callMethod"))return false},setColor:function(a){Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector.callBaseMethod(this,"setColor",[a]);this._designPanel._execCommand("forecolor",false,a)}};Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.ForeColorSelector",Sys.Extended.UI.HTMLEditor.ToolbarButton.ColorSelector);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignMode = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignMode.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignMode.prototype = { } Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignMode.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.DesignMode", Sys.Extended.UI.HTMLEditor.ToolbarButton.ModeButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.ToolbarButton"); Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent = function(element) { Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent.initializeBase(this, [element]); } Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent.prototype = { callMethod : function() { if(!Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent.callBaseMethod(this, "callMethod")) return false; this._designPanel._execCommand("Outdent"); } } Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent.registerClass("Sys.Extended.UI.HTMLEditor.ToolbarButton.DecreaseIndent", Sys.Extended.UI.HTMLEditor.ToolbarButton.MethodButton); Type.registerNamespace("Sys.Extended.UI.HTMLEditor.Popups");Sys.Extended.UI.HTMLEditor.Popups.PopupBoxButton=function(a){Sys.Extended.UI.HTMLEditor.Popups.PopupBoxButton.initializeBase(this,[a]);this._designPanel=null};Sys.Extended.UI.HTMLEditor.Popups.PopupBoxButton.prototype={};Sys.Extended.UI.HTMLEditor.Popups.PopupBoxButton.registerClass("Sys.Extended.UI.HTMLEditor.Popups.PopupBoxButton",Sys.Extended.UI.HTMLEditor.Popups.PopupCommonButton);Type.registerNamespace("Sys.Extended.UI.HTMLEditor.Popups");Sys.Extended.UI.HTMLEditor.Popups.Popup=function(b){var a=this;Sys.Extended.UI.HTMLEditor.Popups.Popup.initializeBase(a,[b]);a._iframe=null;a._top=0;a._left=0;a._doc=null;a._initialContent="";a._cssPath="";a._autoDimensions=true;a._registeredFields=[];a._registeredHandlers=[];a._app_onload$delegate=Function.createDelegate(a,a._app_onload);a.isOpened=false;a.isLoaded=false;a.isLoading=false};Sys.Extended.UI.HTMLEditor.Popups.Popup.prototype={getDocument:function(){return this._doc},getPopupMediator:function(){return this._iframe.contentWindow&&this._iframe.contentWindow.popupMediator?this._iframe.contentWindow.popupMediator:null},get_registeredFields:function(){return this._registeredFields},set_registeredFields:function(a){this._registeredFields=eval(a)},get_registeredHandlers:function(){return this._registeredHandlers},set_registeredHandlers:function(a){this._registeredHandlers=eval(a)},get_initialContent:function(){return this._initialContent},set_initialContent:function(a){this._initialContent=a},get_cssPath:function(){return this._cssPath},set_cssPath:function(a){this._cssPath=a},get_autoDimensions:function(){return this._autoDimensions},set_autoDimensions:function(a){this._autoDimensions=a},get_iframe:function(){return this._iframe},set_iframe:function(a){this._iframe=a},checkCorrectLoaded:function(c){var a=this,b=a;if(b.isLoaded&&(b._iframe.style.height=="0px"||b._iframe.style.width=="0px"))a.isLoaded=false;if(!a.isLoaded){!a.isLoading&&a.reload();typeof c!="undefined"&&setTimeout(c,10);return false}return true},_baseOpen:function(b,e,d){var f="undefined",a=this,c=a;if(!a.checkCorrectLoaded(function(){c._baseOpen(b,e,d)}))return;var g=a.get_element();if(typeof d!=f)a._left=parseInt(d);if(typeof e!=f)a._top=parseInt(e);g.style.top=a._top+"px";g.style.left=a._left+"px";setTimeout(function(){typeof b=="function"&&c._onDocumentLoaded(b);c.isOpened=true},0)},open:function(a,c,b){this._baseOpen(a,c,b)},close:function(a){var b=this.get_element();this.isOpened=false;b.style.top="-2000px";b.style.left="-2000px";typeof a=="function"&&a()},reload:function(){var a=this;a.isLoading=true;var c=a.get_element(),d=c.parentNode;document.body.appendChild(c);d.appendChild(a.get_element());a._doc=a._iframe.contentWindow.document;a._doc.open();var b=new Sys.StringBuilder;b.append('');a._cssPath.length>0&&b.append('');b.append("