img/skins/blue/spin-primary-button.gif000066600000003471152133032460014040 0ustar00GIF89aۙ%ܞ0Ljߤ>͕۲k[xԥ!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/ocean/spin-primary-button.gif000066600000003471152133032460014176 0ustar00GIF89aϾĮɶ!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/light/spin-primary-button.gif000066600000003471152133032460014220 0ustar00GIF89au TBc!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/fresh/spin-primary-button.gif000066600000003471152133032460014220 0ustar00GIF89atɸR@b!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/ectoplasm/spin-primary-button.gif000066600000003471152133032460015100 0ustar00GIF89a:DǓQ͟ۺ⮹ykԭ!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/coffee/spin-primary-button.gif000066600000003471152133032460014340 0ustar00GIF89amt¯œ~ɸϳ˫Ժ!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/sunrise/spin-primary-button.gif000066600000003471152133032460014601 0ustar00GIF89am#t/⯇~<帔˲ܛiؑZߤw¤!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/skins/midnight/spin-primary-button.gif000066600000003471152133032460014714 0ustar00GIF89a.#9/錇F<요qibZ~w!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/spin-modal.gif000066600000003471152133032460010062 0ustar00GIF89aFFFzzzXXX$$$666hhh!Created with ajaxload.info! ! NETSCAPE2.0,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;img/wg/splitx.png000066600000000126152133032460007770 0ustar00PNG  IHDRPLTEg IDATcFnh̵IENDB`img/wg/splity.png000066600000000131152133032460007765 0ustar00PNG  IHDRkPLTEgIDATc $IENDB`img/logo-foot.gif000066600000003223152133032460007717 0ustar00GIF89a4EAQo4kӌ:5eMu.Vuϥд0Ϙ6HH.Q&L @>߫3a!,4E@pH,Ȥh@˨Yl kzR(I32HB>bBO Mxw } j4 vD\iHi r W 66]C6M6yC va#rMPV, 6a uuCOapegi4pe5ofM6 e,vp4P= Hz@Ѫ7! ,@ Lu4ңHŁ 0PK JM3Å KPTD. O(bM-0%< jA(]_+{=P 6d\ -ԔBI/~-@1Rg0V \!ba}͵1p)kc2NSNjXQ 2$*Z ęˇE*F1u\Q?,IH=oX' m/׫-o0{ c hNzF(d5[|s}Z#PCE5pvj%%B_h] DrPH|)&aT#h$(4`EL’D0dH!ղւ ]E<E4;@w {LEjoGrG[LYc!*` @p*mzڗqX?Á<t+sjX:~I6!l)P3v74bU9I@h`,6BH 6CQ A#p\` 9APp3v D9̉ x 0G%AnVzC `p< q`"=б]"n0ªm@j8(oAs 8sjs/;) ;img/flags.png000066600000054130152133032460007130 0ustar00PNG  IHDR EcPLTE*Yel;;;KK))[[cxwkk ?486*U651/oXX*)BAMLf`+.654NNVIXvEE;^WVYnlSMGFC OE<@<20}zWUT*R[coqvxwu#~cb.Mk|`iXWfhU`rmFE! j+*8T2MjfbpMr9ՁS~dT 7O~7qykqggdWjS}TM4t<\TLlڔ}vuv|u6K6A@ÖJfAC4Z3u%⎐A@FETSD21U48zHjˤ6/ٰ deG3 !zDC1^ܪҩVd1=O OOQ+-بuYXxcdC]#zGv6Cưwrr@X2=Uzmrryz|VAUK&|s8ޭf>c&-ɚ󃃱B pzx?5fOs=E쯽<|hO~Hϝf+ּ|"poSQ]5Y Nc8$\$+U@~tRNSS]SnUIDATxԜ X> AvADQZkh84&ADe b "Hk USIH=WhԴIl~ά}9vf{FuGDdl%}1:k W'a৤dtڵ;H~|< 珉s?Nt5!ю3ec3G/; *~ٽ၏ze)F3v81㢇Ѩ0y/ P wXH[H`*F^3[yF~r?ZLh,ÃvlJM@@ŗDu 8;+byus5+Ƅ¿@W(nxjӁAL A>:ڙ3#OY]:՝D(_uUGBi  6lĈ{O׷wٳB%$T& /z5`wO HJ;Cx0^Rsde!q,3? 7R~ p8/쉃wD]B˜3בԷo?s rK}"-R&2礥yGҥ'#66*VJ0>xz>(>spV^RDZpիOoVŘz)-!ѫ[ ,eƍ;0<)qώOHXU#JNC"&HBlU-̈́jXL1a EBiǓ߽p݊:!!F{}nr2QZpWV6\ܬ+_VSR +&8˭xˑbGV\)_V:`]_+*++r7IWpCbء۽`(cĐu[Zڶa1}hIo%&qaEZ<ąղ틖+^~8+.LJ&C%>l8 $輄%^:qv :+I$8}$J;:zxeqt!B1n!_OG}'C t+O3Cį<|Xo߾e˦|Bd|%Qڡ&`f(,#[;R QydM+?’W@v~M1;up"c"B3#""vwcze<_bĒKmQQA$(tO8FRFlAT@,0Pz!;\nܺa)woBjP_PRS HdT9tV93H,/1\8e$WL8f"jFy gTxT.ǿC[n(߄ ~&P7(.jbq^:vȩSr>E}aڛ'`H ѡ/!s{Ɏ"1? &_%;>x`/ĕ:;ʎ>ZJ]jQqZh$RX8; O_ZVU.&SmIaIXs!t{#=b$>ToHWwX7T3ʄ#2`Z,wDã#ՠ$8FҎ:\'hMy}yǎs=[MiLVOMykiQjjQ㕑A&T+}JҫΚ )8ztܫ& =cFȑ#! '@gUx5k T敘AlZyU5w`#ʯ7.T(+JƏA%—_1  A !c!:t*!`o"!S}Ac#HUXHوU9byDYYqVTLLGF O,^FIZ832vNX`ƍʪq;xԥ} Hڽ_(uR },IpcTZZ@P޸45,l%-a+]"fiaju+It[FϞ3oQ:1љt\(>m$<<\<)!Cpq5bJN^KhQNU[H,jIeˬ1C<-Gd$X&ɾ'18\#<#WP;zc̞=f ;yJ gw$ !X.8DiND+8qB!GZ[?XCbk)Ś5XpO$b[!AW{Ts&E,!&QitwX+@s^ C_{Ĥ^b_I^k\IlAv0=F"U|H14]AGM',OxGc|!NJ|!APO~NY R ^ 1;Tj:pΦ>~ۗOb&:pŠ/@*h𖷾Di*0!! -$l9[cUQ@bbı*R KχRCzB\uq"R𘄉Ry)x,C|. )xcBcXL8(ۍljyKsXgj]]cjc5WU;+]7 VnIPGtRn2qIuPUM}#S jBsB 66eհa+11aI& Êr,j CI'-%Ԡ3g'JÇ>\vT;@~/w%ћ1zghߏBy_OBhט(+k`p)d*,07|n^޻7"ވ&t5´NT\vcL""smo73Q|TLpa…_Ν)@.SwJ10\{8 !ׯ_o]1ZV.-zk(٨D6C\G廱BRRBB}9yK]iRDOZZ>`Mop̞ce>4i <K'!cGtHJGCiccP`nMYI el)CRɎz1q("̆ZUY ͩ*0&} Z"21&5SGֿ!~/ z#xPbjUԩ7`RhՁ,`$\M1__tvG1CAqh 2^ H qI3'To#o3 .Μ9su FДIEί7iP]Ch!vCr4|t(gIɣG߯Dѝ9wyBՌ%Ɂ͜ j}KzYmyݻ31_^@^{̙>o/ OvLZN{v:{D5[EAܷj(>/L Dڜ#a!)1'>MBV_cu(2;S\Fѐ]ZǞGTSթåFT` ,$f.))5R.)nD:sy." n2[\:DѮRćbix`d^8bskr 6t&,C}(*ì8''ggDžsh1ه U>جjJLLLltŴʤ+(= 72]Rr 9'$d,_V D p_ᎆDJn }L"(A(.ZL+%$dC"ߤXՐG w"hsoάBnCF4o0mԐhDYs֦[wdhګ6޲e&Dyeͦ-/1lh3n}{ BC5kT(TTTG̀\T+8V'ڸH58 -K0uYZD Y D)9 ¯7]f1i/+Ղ-L\`,$3lܷVXKHڻG ִ_0,ٹdD%NF[CTU{? 9ÐTͧʨ_LڃuboGZ}_[} Ā/_#ArQCOwW~ֽ;Q~}ض[cϣN!(#=~VB_+ck!>Z(DG !/ʗqb0i=|@D>sA 9 B 1~m[ /0҉7:'bj{uGd/|zojQ!*oCGNpk $5y!tqG)d%ZD颁?DkWVzh/{w\ח!4a)Tws- (K3B{S8*ռFo` # Խ݄.?R m)!oKlÓ=yzmr@jW:炼{=/e t;Vo]玍mE׹cNjˤ|,+=cGݙbD?:!:oRt>X~Bcy ML8<84fא]Ir]]KYD"vbIXDdZC"b>\ $}\(-!~ A ŅGb&~Ȁwٰ.~w D 0ZD":,d=*}P0ؠ(+۾=+=F.NJ *m>b's+qE$Eum@l%@y92nlKy,`p,/2!X6/vB${1DIp(t T U@U@A[1C)r}mx#r ÐmWY?!QE4@D10:cV+>Q] @oOA%Lܾ=mRܞVTem!p78]N -iIhVcyOݎqCND:d $tX[2>[KbALְV:7ΛoBHn@lxL`}`nAbJO doL)sLt#3g~I /xwcD$ILyzc~B;bUK_OzBOpjO;TB=7SSnFF#)Nq#]ټU'ԭ [7]S fs+ `.%'QY (qI䌃qEow *r]l %A1B!Pi7)J|c/q1l@#%.\\\9++XP"~_7}XV [L,ć~)f*ϟGd|*9/P>Vg@4azW0[Dee4AlHOsCc)Tӟ] `WxlL!%(&b!lQ)׆6Of^01$kUyA S"cN Ta@_و{xkSٍ衳ye7N@ĵ76ѱǥg]7%nB̦&R" #=@)HvWIPm\{ !(N$΋䥨c-\d%@PXڼ-E-g!|%!>a3'Py#v/c qxqFcݶ-U={Z"& ̰0#Dޛ+!u fg鏹q КU tqP.5 b.o ʩb U@bl flGy`Rd@/ϓ%V1 H`: d|}E 'Bp|̨CXF_Č}/jGq{EMD)ŀ@Νs@'Q=D"MB胟M`malvdtuud18Ԕdt WIu qQe6*}F]1;utb4h =cV։Dfi!qӘ@kt[ _L5WJ<):٢#L~+]CE/+ Mvt P>VZ)(lBrY)}>x`2m,L!qRb)r-X<'l SR[W/k:D1XgMx {$p4fѩf[V8ʓŕnWc!q[R`ʭ?=[<&al CN~AN:[bЕ2= ؽJ>T :[W9wȩ~ڂǕgmD[A}ARA=q\Opܒ:_zx.%uRѼn鈸 Ax ?ʠCunlt^ؽs#?tܫ&ίٻ`2;f+W+*23IxC)?0q 줺gMoQV,g,f` C |yFH_SVVL,E7I8-^LUظp.]Iܽ<8Dmyy,\ĐPLm ELp(|LC6|N%5%nQݦmDme&h vJ;Ɓ ފʠҝNJF 8oy_0 U!Uf,pXl6fD=ҍD&W R p<_t𙡺DZ!Fギn勌@\*nv QڱVYrBGVlPExڐepn?gpG.5l7fAvPʫgbFJ^y":;x9D/^^^Fp% x&`HlhcG+!Wb㋏>Zc)oĭRrz[//tO~j|?uUQL߾HTaMYKwyĵt b.:*6bXbf{d H~ :WNd{Y)I@{.%4#ȮMEt1EL&T56PgdџlIulZ":bmq H%!֩r^4YKm!Ke^gWUEUo4޳ο׌^3t`zvF'ݕ"  &C B!Y "fR fRk"%*D"L>-s<[d_&!Ȇ7+X&wFq=+B<wUA1D!\.R`v,Aa/DZYTS:a=m)b)EX:]AIXB~/9o0c%J;,gW8ӝL{0C<4 ׉' "\' [GDr9/@1b<@wtq#HցʭqŢ5~?+|h3 Be k}blYRO^TebI-Ѥ ]a?~}߳d+P0,Qh*:ME= {anj_?gRϞTp|ZAG> &GuՄPyفΒGͦ$DL`LL9r=;>rQ $?gΤ'WP)A^R|[B|&R?/' •+|/0#JY&-:y-Sε s˹fJ&OJB(+ENGHDRX<=x<Ȫ-X"%71 #  s""G\h_QUpsfwdكtAl6ꚘE{DŽL3dsYDW-,W?Xlt bhCuZJ)1`!WJX=e?M%!B)lnނtW_^$xL1/Յq; PѱrU߫sx F'DL xNj֭1Y׉ qi9AbjB~G3TA$_ u:?pӒnB4jLxΝZ,(<bO~@ +-`-uƐb.R-\L-[cn|cNcj2*jܣ3~3@Ͽ:JӷE+MM7! q:PɊO†ڸ#6 kH]|ܺ#]Dd.ݑL"xPX( 1D$?㹀I >n<*^`wN5\ >ky8kmwggpvebO%j<㭷z|JGh j_jOp֔D4lmV|s3]E. Vr۫N Ne{aK!StiT^r6lvgͤKVzl>[nʓ%5YܹR^"w5gk)K݊r- m_~45lmk0 VLGjkߠ!B<"]mښ؟OOq榸]RuEYnB)r?r^>CF;_ ceTCxDF!ǧ( MWSY QWD#ބUAVlj1rg@g1~V/wtB!D%((sۅ..*Cn.tv`|w^ uJե5! )Va ژ"(rw +"tDsLfJ3udv#)1,#;&%bGrNKg[m}˜]בMN |Ъkt}$ "sGC\Ltz-zjf|nf #Ц}7tt=Ϥid)D0s;UCO~g7{*7te;q }iT<aunoG/*E! YA=߈k/kC컰Bԉx/ʍ/BEmei0&R\j)d PGqmuY&AtN6 Z⋈x~^U05DU_پuUآyR$%~D @E0v5}٪ }Jh꧚c m9ŻD/C^,0jU]Z^_OCEmJ/-]vO,=}6՜p6\8䞭p2X}h`>u=jdƘ$85n ax?EBKLĨ jJ4G8a_$CҾ5hq[$,["qOO8 |: &9WP#oNZrR%؝9f *%G~޹ѯ*jg.ٳuo*#99559Q 1aBHHޫ<Ҏ?yL0JiĒIׄFd^l&mR{7jPK6ӓBbӭI8T^4LJ`7Ĥ%sΝ۞?<vZoJ;tu.*ynMON}⓭L6Ok'Ӑ3K?,'OQ|d]87RQuX||ӝAtS@`zV}+y3 3k+Xнha#Q鬳{#oO #Q H@$xM>SBya}QiL.9Xp.7wڳ{w&@"@=*DMFvtݩgGГiEm E'Д ;$2)6B_[V!KʰFTK+F)y gVLm i槱C-ؼw1N{zz#`\ffj[MY,~e9Q-gyXsU#wiMM j$ƅ^QaJt=։M`4 SF>K34}@.!\_H_h=' .5$D_yFyF. 0  d1f^+]$6D>E:~-}=>I!G7u/ "_:t=h6<0aBiKSw29/2|6wuu9Uߢϳ+ =ɣ7gIg%poar_ۏFs#ah=80=m( 2I hE8djPڋ"pyz=!bIC y("v%?*jn( ЧP4z]I y]ywE M%3 n}[}33c7t鸜miMDCc Q2kG:j.֝i݇7DE>obݡ;š^CiaΙ'=Q_z?ןMO MOP$ldlmznzl(?lmzҟnzT7=1RBk.[^/9H萼^8>tlVo:RzX~h9죰;2';fO#|P+r*x"d'`;-xK0KSoyYi ~+E̚3 Mh +Տp,* JM}ccK>2<춆FHR l)kI ߒ5yYn zz,{/5n[KyM`B\B@^HܽJDlT!Fgc%}k5.Ek#){&,gV[`F9oIcLf>%{y'T>zps& K&*->g}c&ݗZS\5dj#$q(† 8d`*PƤ:GXN1قH`<`F8 #޹c':ɸ~6JRRZJ飍/#ݟ/tfES*A 0}#&ۻTKl.{$䤳vxܚ9[K@BuU1UtOSXUYd,NYP݄V{P{wAp%):!4($p&z ˪&W F$לY7^Nz7E曌!@#-(UbOPPɠKLq :>rd& JޠD5R"km,Eze:~mJ%6ۆD;30 `/҅جPL;BzRrz;5* Ze֚|#b]*ZIo1i* oPǍ…*+.hQ*Zi_4.@Vb ,I7na]u񉁕vWiV̩F|,(ߏE.EhU/s BI-@HZ!u2Y*wOȐ!911 c~ zo KHMցQ6w2hULY ]y$6=6uwdr -%e *m trի/ފT6HQnb kRw(NZ2)159$6$9, "0%)$/3|vxc9!-P^ޫ v6PY$f@.@ʴ)"CcZ/Ꮿ/]=/W91MPmLWsS驟Q2I{?=t/O̡Cx ӧ`,{Jqa6iua!wmT^_RF^pvc})`spu swPUÊ 2ZͱB5_4?쭟uHyy>r]Kԇj}D 0ػ+.0czݧ$;n,o[mRRis se1_߭J1@ J;EeD$RᾑCIF~tdJ*,t::;tEL6[t[Sp$Ym沶mG+~&):%5VLPtspGhYcEIS[bڱ1xuX ވ8niᠦ.Iw {]pMg +]j&Z#6F)\3iIyɖ]XU-yq)1bG-9yէ b#ǫZ 7yHyivۑlyq܉ۈ|a/ykF?UzvB/XK.>K./+)Kur17w?K7-E%$|h؞98d//Qy`CqeՂxZ-_X-7v ~%0r[f `+.-A[kbBk1 wZ]3q5+ߗ>q\>[]§tk.9+v4x_=k*% ~~8l р!Qjl<ccUU$UX,EGbXk0@}dV.oz:wf6+uq oZ n --j6ﱝT)=,=5} MۄE 4$ vAcV2+_ }^2l\ @<k7=_Zk' d$a\kfkkCLX[>  /|E5'ȺP҂Rib % N+o[ͪri!$g9'/ HY= Y#>Ğ_J-ףPc-OYV`@h׶=n9?smc_/q{w{<"GoPI1j~~>6W RLu`B4=S  !{?;KlAX=7cBW|oxw[f) R`B(ؘ@)0}< w΢w$%֒WhU(AFk |7 y [ֹDdk^)K*r> 1F C U*Lȩj9* 6sc!26(ƍ ,`Yr5f1yBJr1FGzСcp/YgGǠri" c$t <+̚ ۧD-Q&76$4P } _vX؇88U`9Ȱ~v^LZk0[k Y|i١_{ hxQqFN|xCLtE^o)[=mm=) &wb"[X 9Zgo۶6@[r,O\AGCx/G"4>qbkbV(6=R~1/'X% c0%Ek<@1:- "k/^oÇXIODDϠV-?'|d0o\aGuEZ3\H Uz*i=emƿM `弦zzYBj׮UL:_>0AJ=`oS1:x-X׾eI>w| 7w~%A{W+z}9 7XPPy$"VP iG~B`߾L8ح8 QGS'᪢}LrTQ' :C!k`>we*W>C$8 dV SyM.;)ůhK)7D\` ~O泑t^IOͿJ|ޏh1sր9sv-笯o> zW:f/xz算hn Gpav.8iٱȍ#qG1HćG 0aqcsY 1U:6#]6@RГ [4`7" dZ2B@;۬bt͟9/  yE/P;&Y!Loa5uuGz[:L%G\@%"x+oKlokHts '<5}>LRI-jba߼I;iYFE'Nu^~?Uܱ$FD^1V~jH Gn([C},' l`ve: =,D y"D-9{W-36#!$Փt“bAo _->/e`hbn5+Ɯd1oI6L'ɓE:ȺOJ ׎Klĺ'A|1I鉱qDo) >yXtt8Y x/HA!dl{+{ TWKʶwDmB-v[Dy|gyB0uUt;g\<.)[0|P+[l{zAGW{h_-e[Z>FN^ ᆆ#]` )"マӍla/6e4`i DRRܮR aYEOfU qmHO@O~VSK]M e !yd#K|803LP΄~1Z;m`CfaT nGuu2g6#>i'hp'D~ ĀPyi&p9Te|gC Wv4D_>~q vybC4g.i~q;%Z1=l, 0<ꞛ|2%?.|5]*V/'ӳ!H[Aq d>zt`cZShM_sl}<\26"DuB G N覦 .m=|@8r>fCmm9 u@ e( g5JWS)=_7^(jnCH<`s*F,(JK[]չ_QB[wvRh́<-!' PSdXd#а@˩XJnjrdUd/y%RK^923CrdE"(XA/}2}[rl_{rwEGHswAfsవq%%˨S9$ @N||-Aas]*/8Nk.ÐBwJ:l?IIdŕL\=~ʳpM8Bfa0""5 Y!b6Fn9&C'/j݊]sZ!5 @H%рRqfD~t0Xfʻۍɺkz*Fy#k9{[wWљFMۜ/5hevn},'m4QeTP^\V;cs̯\-#wnƭ+ P;j wϟ?G$ ]C'? 7c0& <@9&K^uWTC5LwnJuE\k+}#Sb#ϕBJA^PE%2eÌ8O=}!96Tnlbt ɴ~3hX.-@6\yK\=[Ȁ{lf`doYwZ-O,>}l/ehhe=_IN#t ذnvthMsi 8h)@3jXCriCK "K"glQĢa70| ?vS \7sJoqb)]SNz{rqJcwu)u])3]uy`ҫLD+KZ&G&_5 *؝lfR TC0)F~UV| l+DG ) O[IENDB`img/spin-editor-button.gif000066600000003471152133032460011565 0ustar00GIF89aUUUぁUUUkkkaaaVVVvvv! NETSCAPE2.0!Created with ajaxload.info! ,w  !DBAH¬aD@ ^AXP@"UQ# B\; 1 o:2$v@ $|,3 _# d53" s5 e!! ,v i@e9DAA/`ph$Ca%@ pHxFuSx# .݄YfL_" p 3BW ]|L \6{|z87[7!! ,x  e9DE"2r,qPj`8@8bH, *0- mFW9LPE3+ (B"  f{*BW_/ @_$~Kr7Ar7!! ,v 4e9!H"* Q/@-4ép4R+-pȧ`P(6᠝U/  *,)(+/]"lO/*Ak K]A~666!! ,l ie9"* -80H=N; TEqe UoK2_WZ݌V1jgWe@tuH//w`?f~#6#!! ,~ ,e9"* ; pR%#0` 'c(J@@/1i4`VBV u}"caNi/ ] ))-Lel  mi} me[+!! ,y Ie9"M6*¨"7E͖@G((L&pqj@Z %@wZ) pl( ԭqu*R&c `))( s_J>_\'Gm7$+!! ,w Ie9*, (*(B5[1 ZIah!GexzJ0e6@V|U4Dm%$͛p \Gx }@+| =+ 1- Ea5l)+!! ,y )䨞'AKڍ,E\(l&;5 5D03a0--ÃpH4V % i p[R"| #  6iZwcw*!! ,y )䨞,K*0 a;׋аY8b`4n ¨Bbbx,( Ƚ  % >  2*i* /:+$v*!! ,u )䨞l[$ Jq[q 3`Q[5:IX!0rAD8 CvHPfiiQAP@pC %D PQ46  iciNj0w )#!! ,y ). q ,G Jr(J8 C*B,&< h W~-`, ,>; 8RN<, <1T] c' qk$ @)#!;js/poinit.js000066600000013465152133032460007034 0ustar00/** * Script for PO file initializing page */ !function( window, document, $ ){ var path, loco = window.locoScope, fsHook = document.getElementById('loco-fs'), elForm = document.getElementById('loco-poinit'), fsConn = loco.fs.init( fsHook ) ; /** * Abstract selection of twin mode (Select/Custom) locale input */ var localeSelector = function( elForm ){ function isSelectMode(){ return elMode[0].checked; } function setSelectMode(){ elMode[0].checked = true; redrawMode( true ); } function setCustomMode(){ if( ! elCode.value ){ elCode.value = getValue(); } elMode[1].checked = true; //elOpts.selectedIndex = 0; redrawMode( false ); } function getValue(){ var data = $( isSelectMode() ? elOpts : elCode ).serializeArray(); return data[0] && data[0].value || ''; } function getLocale(){ var value = getValue(); return value ? loco.locale.parse(value) : loco.locale.cast( {lang:'zxx'} ); } function onModeChange(){ redrawMode( isSelectMode() ); return true; } function redrawMode( selectMode ){ elCode.disabled = selectMode; elOpts.disabled = ! selectMode; fsCode.className = selectMode ? 'disabled' : 'active'; fsOpts.className = selectMode ? 'active' : 'disabled'; validate(); } var elOpts = elForm['select-locale'], elCode = elForm['custom-locale'], elMode = elForm['use-selector'], fsOpts = $(elOpts).focus( setSelectMode ).closest('fieldset').click( setSelectMode )[0], fsCode = $(elCode).focus( setCustomMode ).closest('fieldset').click( setCustomMode )[0]; $(elMode).change( onModeChange ); onModeChange(); loco.watchtext( elCode, function(v){ $(elCode.form).triggerHandler('change'); } ); return { val: getLocale }; }( elForm ); /** * Abstract selection of target directory */ var pathSelector = function(){ var elOpts = elForm['select-path']; function getIndex(){ var pairs = $(elOpts).serializeArray(), pair = pairs[0]; return pair && pair.value || null; } function getSelected(){ var index = getIndex(); return index && elForm['path['+index+']']; } function getValue(){ var elField = getSelected(); return elField && elField.value; } function getLabel(){ var elField = getSelected(); return elField && $(elField.parentNode).find('code.path').text(); } /*$(elForm['path[0]']).focus( function(){ elOpts[0].checked = true; } );*/ return { val: getValue, txt: getLabel }; }( elForm ); // enable disable form submission function setFormDisabled( disabled ){ $(elForm).find('button.button-primary').each( function( i, button ){ button.disabled = disabled; } ); } // Recalculate form submission when any data changes function validate(){ var locale = localeSelector && localeSelector.val(), hasloc = locale && locale.isValid() && 'zxx' !== locale.lang, hasdir = pathSelector && pathSelector.val(), valid = hasloc && hasdir ; redrawLocale( locale ); // disabled until back end validates file path setFormDisabled( true ); // check calculated path against back end if( valid ){ var newPath = pathSelector.txt(); if( newPath !== path ){ path = newPath; fsHook.path.value = path; fsConn.listen(onFsConnect).connect(); } else { setFormDisabled( false ); } } } // callback after file system connect has returned function onFsConnect( valid ){ setFormDisabled( ! valid ); } // show locale in all file paths (or place holder if empty) function redrawLocale( locale ){ var $form = $(elForm), loctag = locale && locale.toString('_') || '', suffix = loctag ? ( 'zxx' === loctag ? '' : loctag ) : '' ; $form.find('code.path span').each( function( i, el ){ el.textContent = suffix; } ); $form.find('span.lang').each( function( i, icon ){ setLocaleIcon( icon, locale ); } ); } function setLocaleIcon( icon, locale ){ if( locale && 'zxx' !== locale.lang ){ icon.setAttribute('lang',locale.lang); icon.setAttribute('class',locale.getIcon()); } else { icon.setAttribute('lang',''); icon.setAttribute('class','lang nolang'); } } // Submit form to Ajax end point when ..erm.. submitted function onMsginitSuccess( data ){ var href = data && data.redirect; if( href ){ // TODO show success panel and hide form instead of redirect? // loco.notices.success('YES'); location.assign( href ); } } function process( event ){ event.preventDefault(); fsConn.applyCreds( elForm ); loco.ajax.submit( event.target, onMsginitSuccess ); // TODO some kind of loader? return false; } $(elForm) .change( validate ) .submit( process ); redrawLocale( localeSelector.val() ); }( window, document, jQuery );js/config.js000066600000004532152133032460006772 0ustar00/** * Script for bundle configuration screen */ !function( window, document, $ ){ // utility for scrolling function elementTop( el, ancestor ){ var y = el.offsetTop; while( ( el = el.offsetParent ) && el !== ancestor ){ y += el.offsetTop; } return y; } // form duplicator for adding another project function addProject(){ var $divs = $('#loco-conf > div'), $copy = $divs.eq(0).clone(), index = $divs.length, id = 'loco-conf-'+index, ns = '['+index+']' ; function clearField( i, input ){ var name = input.name.replace('[0]',ns); $(input).attr('name', name ).val(''); } $copy.attr('id', 'loco-conf-'+index ); $copy.find('input').each( clearField ); $copy.find('textarea').each( clearField ); //$copy.find('div.notice').remove(); // TODO translations of this: $copy.find('h2').eq(0).html('New set (untitled)'); $copy.insertBefore('#loco-form-foot'); createClickRemove( $copy.find('a.icon-del'), index ); // scroll to $copy $copy.hide().slideDown( 500 ); $('html, body').animate( { scrollTop: elementTop($copy[0]) }, 500 ); } function createClickRemove( $el, index ){ return $el.click( function(event){ event.preventDefault(); delProject( index ); return false; } ); } // remove whole set from form function delProject( index ){ var $div = $('#loco-conf-'+index), $fld = $div.find('input[name="conf['+index+'][removed]"]') ; // setting removed flag saves having to re-index all sets. back end will ignore it. $fld.val('1'); $div.slideUp( 500, function(){ $(this).hide().find('table').remove(); } ); } // enable project removal from initial blocks $('#loco-conf > div').each( function( index, div ){ createClickRemove( $(div).find('a.icon-del'), index ); } ); // enable project addition via button in footer $('#loco-add-butt').attr('disabled',false).click( function(event){ event.preventDefault(); addProject(); return false; } ); }( window, document, jQuery );js/editor.js000066600000042116152133032460007013 0ustar00/** * Script for PO file editor pages */ !function( window, $ ){ var loco = window.locoScope, conf = window.locoConf, syncParams = null, saveParams = null, // UI translation translator = loco.l10n, sprintf = loco.string.sprintf, // PO file data locale = conf.locale, messages = loco.po.init( locale ), template = ! locale, // form containing action buttons elForm = document.getElementById('loco-actions'), filePath = conf.popath, syncPath = conf.potpath, // file system connect when file is locked elFilesys = document.getElementById('loco-fs'), fsConnect = elFilesys && loco.fs.init( elFilesys ), // prevent all write operations if readonly mode readonly = conf.readonly, editable = ! readonly, // Editor components editor, saveButton, innerDiv = document.getElementById('loco-editor-inner') ; /** * */ function doSyncAction( callback ){ function onSuccess( result ){ var info = [], doc = messages, exp = result.po, src = result.pot, pot = loco.po.init().load( exp ), done = doc.merge( pot ), nadd = done.add.length, ndel = done.del.length, t = translator; // reload even if unchanged, cos indexes could be off editor.load( doc ); // Show summary if( nadd || ndel ){ if( src ){ // Translators: Where %s is the name of the POT template file. Message appears after sync info.push( sprintf( t._('Merged from %s'), src ) ); } else { // Translators: Message appears after sync operation info.push( t._('Merged from source code') ); } // Translators: Summary of new strings after running in-editor Sync nadd && info.push( sprintf( t._n('1 new string added','%s new strings added', nadd ), nadd ) ); // Translators: Summary of existing strings that no longer exist after running in-editor Sync ndel && info.push( sprintf( t._n('1 obsolete string removed','%s obsolete strings removed', ndel ), ndel ) ); // editor thinks it's saved, but we want the UI to appear otherwise $(innerDiv).trigger('poUnsaved',[]); updateStatus(); // debug info in lieu of proper merge confirmation: window.console && debugMerge( console, done ); } else if( src ){ // Translators: Message appears after sync operation when nothing has changed. %s refers to a POT file. info.push( sprintf( t._('Already up to date with %s'), src ) ); } else { // Translators: Message appears after sync operation when nothing has changed info.push( t._('Already up to date with source code') ); } loco.notices.success( info.join('. ') ); $(innerDiv).trigger('poMerge',[result]); // done sync callback && callback(); } loco.ajax.post( 'sync', syncParams, onSuccess, callback ); } function debugMerge( console, result ){ var i = -1, t = result.add.length; while( ++i < t ){ console.log(' + '+result.add[i].source() ); } i = -1, t = result.del.length; while( ++i < t ){ console.log(' - '+result.del[i].source() ); } } /** * Post full editor contents to "posave" endpoint */ function doSaveAction( callback ){ function onSuccess( result ){ callback && callback(); editor.save( true ); // Update saved time update $('#loco-po-modified').text( result.datetime||'[datetime error]' ); } saveParams.locale = String( messages.locale() || '' ); if( fsConnect ){ fsConnect.applyCreds( saveParams ); } // adding PO source last for easier debugging in network inspector saveParams.data = String( messages ); loco.ajax.post( 'save', saveParams, onSuccess, callback ); } function saveIfDirty(){ editor.dirty && doSaveAction(); } function onUnloadWarning(){ // Translators: Warning appears when user tries to refresh or navigate away when editor work is unsaved return translator._("Your changes will be lost if you continue without saving"); } function registerSaveButton( button ){ saveButton = button; // enables and disable according to save/unsave events editor .on('poUnsaved', function(){ enable(); $(button).addClass( 'button-primary loco-flagged' ); } ) .on('poSave', function(){ disable(); $(button).removeClass( 'button-primary loco-flagged' ); } ) ; function disable(){ button.disabled = true; } function enable(){ button.disabled = false; } function think(){ disable(); $(button).addClass('loading'); } function unthink(){ enable(); $(button).removeClass('loading'); } saveParams = $.extend( { path: filePath }, conf.project||{} ); $(button).click( function(event){ event.preventDefault(); think(); doSaveAction( unthink ); return false; } ); return true; }; function registerSyncButton( button ){ var project = conf.project; if( project ){ function disable(){ button.disabled = true; } function enable(){ button.disabled = false; } function think(){ disable(); $(button).addClass('loading'); } function unthink(){ enable(); $(button).removeClass('loading'); } // Only permit sync when document is saved editor .on('poUnsaved', function(){ disable(); } ) .on('poSave', function(){ enable(); } ) ; // params for sync end point syncParams = { bundle: project.bundle, domain: project.domain, type: template ? 'pot' : 'po', sync: syncPath||'' }; // enable syncing on button click $(button) .click( function(event){ event.preventDefault(); think(); doSyncAction( unthink ); return false; } ) //.attr('title', syncPath ? sprintf( translator._('Update from %s'), syncPath ) : translator._('Update from source code') ) ; enable(); } return true; } function registerFuzzyButton( button ){ var toggled = false, enabled = false ; function redraw( message, state ){ // fuzziness only makes sense when top-level string is translated var allowed = message && message.translated(0) || false; if( enabled !== allowed ){ button.disabled = ! allowed; enabled = allowed; } // toggle on/off according to new fuzziness if( state !== toggled ){ $(button)[ state ? 'addClass' : 'removeClass' ]('inverted'); toggled = state; } } // state changes depending on whether an asset is selected and is fuzzy editor .on('poSelected', function( event, message ){ redraw( message, message && message.fuzzy() || false ); } ) .on( 'poEmpty', function( event, blank, message, pluralIndex ){ if( 0 === pluralIndex && blank === enabled ){ redraw( message, toggled ); } } ) .on( 'poFuzzy', function( event, message, newState ){ redraw( message, newState ); } ) ; // click toggles current state $(button).click( function( event ){ event.preventDefault(); editor.fuzzy( ! editor.fuzzy() ); return false; } ); return true; }; function registerRevertButton( button ){ // No need for revert when document is saved editor .on('poUnsaved', function(){ button.disabled = false; } ) .on('poSave', function(){ button.disabled = true; } ) ; // handling unsaved state prompt with onbeforeunload, see below $(button).click( function( event ){ event.preventDefault(); location.reload(); return false; } ); return true; }; function registerInvisiblesButton( button ){ var $button = $(button); button.disabled = false; editor.on('poInvs', function( event, state ){ $button[ state ? 'addClass' : 'removeClass' ]('inverted'); }); $button.click( function( event ){ event.preventDefault(); editor.setInvs( ! editor.getInvs() ); return false; } ); locoScope.tooltip.init($button); return true; } function registerCodeviewButton( button ){ var $button = $(button); button.disabled = false; $button.click( function(event){ event.preventDefault(); var state = ! editor.getMono(); editor.setMono( state ); $button[ state ? 'addClass' : 'removeClass' ]('inverted'); return false; } ); locoScope.tooltip.init($button); return true; }; function registerAddButton( button ){ button.disabled = false; $(button).click( function( event ){ event.preventDefault(); // Need a placeholder guaranteed to be unique for new items var i = 1, baseid, msgid, regex = /(\d+)$/; msgid = baseid = 'New message'; while( messages.get( msgid ) ){ i = regex.exec(msgid) ? Math.max(i,RegExp.$1) : i; msgid = baseid+' '+( ++i ); } editor.add( msgid ); return false; } ); return true; }; function registerDelButton( button ){ button.disabled = false; $(button).click( function(event){ event.preventDefault(); editor.del(); return false; } ); return true; }; function registerDownloadButton( button, id ){ button.disabled = false; $(button).click( function( event ){ var form = button.form, path = filePath; // swap out path if( 'binary' === id ){ path = path.replace(/\.po$/,'.mo'); } form.path.value = path; form.source.value = messages.toString(); // allow form to submit return true; } ); return true; } // event handler that stops dead function noop( event ){ event.preventDefault(); return false; } /*/ dummy function for enabling buttons that do nothing (or do something inherently) function registerNoopButton( button ){ return true; }*/ /** * Update status message above editor. * This is dynamic version of PHP Loco_gettext_Metadata::getProgressSummary * TODO implement progress bar, not just text. */ function updateStatus(){ var t = translator, stats = editor.stats(), total = stats.t, fuzzy = stats.f, empty = stats.u, // Translators: Shows total string count at top of editor stext = sprintf( t._n('1 string','%s strings',total), total ), extra = []; if( locale ){ // Translators: Shows percentage translated at top of editor stext = sprintf( t._('%s%% translated'), stats.p.replace('%','') ) +', '+ stext; // Translators: Shows number of fuzzy strings at top of editor fuzzy && extra.push( sprintf( t._('%s fuzzy'), fuzzy ) ); // Translators: Shows number of untranslated strings at top of editor empty && extra.push( sprintf( t._('%s untranslated'), empty ) ); if( extra.length ){ stext += ' ('+extra.join(', ')+')'; } } $('#loco-po-status').text( stext ); } /** * Enable text filtering */ function initSearchFilter( elSearch ){ editor.searchable( loco.fulltext.init() ); // prep search text field elSearch.disabled = false; elSearch.value = ''; function showValidFilter( numFound ){ $(elSearch.parentNode)[ numFound || null == numFound ? 'removeClass' : 'addClass' ]('invalid'); } var listener = loco.watchtext( elSearch, function( value ){ var numFound = editor.filter( value, true ); showValidFilter( numFound ); } ); editor .on( 'poFilter', function( event, value, numFound ){ listener.val( value||'' ); showValidFilter( numFound ); } ) .on( 'poMerge', function( event, result ){ var value = listener.val(); value && editor.filter( value ); } ) ; } // resize function fits editor to screen, accounting for headroom and touching bottom of screen. var resize = function(){ function top( el, ancestor ){ var y = el.offsetTop||0; while( ( el = el.offsetParent ) && el !== ancestor ){ y += el.offsetTop||0; } return y; } var fixHeight, minHeight = parseInt($(innerDiv).css('min-height')||0) ; return function(){ var padBottom = 20, topBanner = top( innerDiv, document.body ), winHeight = window.innerHeight, setHeight = Math.max( minHeight, winHeight - topBanner - padBottom ) ; if( fixHeight !== setHeight ){ innerDiv.style.height = String(setHeight)+'px'; fixHeight = setHeight; } }; }(); // ensure outer resize is handled before editor's internal resize resize(); $(window).resize( resize ); // initialize editor innerDiv.innerHTML = ''; editor = loco.po.ed .init( innerDiv ) .localise( translator ) ; loco.po.kbd .init( editor ) .add( 'save', saveIfDirty ) .enable('copy','clear','enter','next','prev','fuzzy','save','invis') ; // initialize toolbar button actions var buttons = { // help: registerNoopButton, save: editable && registerSaveButton, sync: editable && registerSyncButton, revert: registerRevertButton, // editor mode togglers invs: registerInvisiblesButton, code: registerCodeviewButton, // downloads / post-throughs source: registerDownloadButton, binary: template ? null : registerDownloadButton }; // POT only if( template ){ buttons.add = editable && registerAddButton; buttons.del = editable && registerDelButton; } // PO only else { buttons.fuzzy = registerFuzzyButton; }; $('#loco-toolbar').find('button').each( function(i,el){ var id = el.getAttribute('data-loco'), register = buttons[id]; register && register(el,id) || $(el).hide(); } ); // disable submit on dummy form $(elForm).submit( noop ); // enable text filtering initSearchFilter( document.getElementById('loco-search') ); // editor event behaviours editor .on('poUnsaved', function(){ window.onbeforeunload = onUnloadWarning; } ) .on('poSave', function(){ updateStatus(); window.onbeforeunload = null; } ) .on( 'poUpdate', updateStatus ); ; // load raw message data messages.load( conf.podata ); // ready to render editor editor.load( messages ); // enable template mode when no target locale editor.targetLocale || editor.unlock(); // ok, editor ready updateStatus(); // clean up delete window.locoConf; conf = buttons = null; }( window, jQuery );js/potinit.js000066600000002017152133032460007207 0ustar00/** * Script for POT file initializing page */ !function( window, document, $ ){ var loco = window.locoScope, fsHook = document.getElementById('loco-fs'), elForm = document.getElementById('loco-potinit') ; // enable disable form submission function setFormDisabled( disabled ){ $(elForm).find('button.button-primary').each( function( i, button ){ button.disabled = disabled; } ); } // Submit form to Ajax end point when ..erm.. submitted function onXgettextSuccess( data ){ var href = data && data.redirect; if( href ){ location.assign( href ); } } function process( event ){ event.preventDefault(); loco.ajax.submit( event.target, onXgettextSuccess ); return false; } $(elForm) .submit( process ); setFormDisabled( false ); if( fsHook ){ loco.fs.init(fsHook).setForm( elForm ); } }( window, document, jQuery );js/delete.js000066600000000534152133032460006765 0ustar00/** * Script for file delete operation */ !function( window, document, $ ){ var fsHook = document.getElementById('loco-fs'), elForm = document.getElementById('loco-del'); if( fsHook && elForm ){ window.locoScope.fs .init( fsHook ) .setForm( elForm ); } }( window, document, jQuery );js/min/admin.js000066600000312205152133032460007377 0ustar00(function(q,y,h,T){var n=function(){var f={};return{register:function(c,h){f[c]=h},require:function(c,h){var l=f[c];if(!l)throw Error('CommonJS error: failed to require("'+h+'")');return l}}}();n.register("$1",function(f,c,h){function l(b){var g=typeof b;if("string"===g)if(/[^ <>!=()%^&|?:n0-9]/.test(b))console.error("Invalid plural: "+b);else return new Function("n","return "+b);"function"!==g&&(b=function(a){return 1!=a});return b}f.init=function(b){function g(d,e,k){return(d=a[d])&&d[k]?d[k]:e|| ""}b=l(b);var a={};return{_:function(a){return g(a,a,0)},_x:function(a,e){return g(e+"\u0004"+a,a,0)},_n:function(a,e,k){k=Number(b(k));isNaN(k)&&(k=0);return g(a,i?e:a,k)},load:function(d){a=d||{};return this},pluraleq:function(a){b=l(a);return this}}};return f}({},q,y));n.register("$2",function(f,c,h){Array.prototype.indexOf||(Array.prototype.indexOf=function(c){if(null==this)throw new TypeError;var b,g=Object(this),a=g.length>>>0;if(0===a)return-1;b=0;1=a)return-1;for(b=0<=b?b:Math.max(a-Math.abs(b),0);b');r.find("p").text(a||"Empty message");d?r.find("small").text(d):r.find("small").remove();if(b.length){b.push({label:"Cancel",callback:s,css:"cancel"});var f,t=h('
'); d=function(a,d){f=h('');f.click(function(a){"function"===typeof d.callback&&d.callback(a,{close:s})});t.append(f);return f};for(a=0;a');e=h('
'); k=h('
');s=h('
Untitled
');m=h("");p=h('x');u=h('
');d.append(e.append(k)).append(u).prependTo(n.body);h(n).on("keydown",l);h(c).resize(b);C=c.innerWidth;v=c.innerHeight;z=k.outerWidth(!0)-k.width()+(e.innerWidth()-e.width());E=parseInt(k.css("width"));if(!E||isNaN(E))E=k.width();m.hide().prependTo(e); s.append(p.hide()).hide().prependTo(e);d.hide()}return d},G=f.width=function(a){var d=D();if(null===a)e.css("width",""),k.css("width","");else{a=a||E||640;x=a+z;w=a;var b=C;x>b?(x=b,a=x-z,d.addClass("spill")):d.removeClass("spill");e.css("width",x+"px");k.css("width",a+"px")}return f};f.autoSize=function(){var a=D(),d=E||0;k.children().each(function(a,e){d=Math.max(d,h(e).outerWidth(!0))});G(d);if(A=a.find("div.overlay-scroll")[0])v=c.innerHeight,g();return f};f.css=function(a){D().attr("class",a); return f};f.html=function(a){D();c.innerShiv&&(a=innerShiv(a,!1));return k.html(a)};f.append=function(a){D();a instanceof jQuery||(a=h(a));k.append(a);return f};var H=f.close=function(a){if(r){var e=function(){D().hide();h(n.body).removeClass("has-overlay");r=!1;k.html("");r=null;d.trigger("overlayClosed",[f])};null==a&&(a=300);d.trigger("overlayClosing",[f]);a?d.fadeOut(a,e):e()}return f};f.title=function(d,e){D();var b="",k=s.find("span");e&&/^lang lang-(\w+)/.exec(e)&&(b=RegExp.$1);k.eq(0).attr("class", e||"icon").attr("lang",b);t=d||"";k.eq(1).text(t);null!=d?a(!0):B||a(!1);return f};f.enableClose=function(){D();B=!0;p.off("click").on("click",function(a){H();return!1});a(!0);p.show();return f};f.disableClose=function(){D();B=!1;p.hide();r&&t||a(!1);return f};f.enableNav=function(a){m.append(a);m.show();return f};f.disableNav=function(){m.html("").hide();return f};f.open=function(){D();k.html("");G(E);d.attr("class","");h(n.body).addClass("has-overlay");D().show();r=!0;f.title(null);B&&a(!0);d.trigger("overlayOpened", [f]);return f};f.listen=function(a){D().on("overlayClosed",a);return f};f.unlisten=function(a){D().off("overlayClosed",a);return f};return f}({},q,y));n.register("$11",function(f,c,n){function l(a,d){this.$element=h(a);this.options=d;this.enabled=!0;this.fixTitle()}f.init=function(a,d){var e={fade:!0,offset:5,delayIn:b,delayOut:g,anchor:a.attr("data-anchor"),gravity:a.attr("data-gravity")||"s"};d&&(e=h.extend({},e,d));a.tipsy(e)};f.delays=function(a,d){b=a||150;g=d||100};f.kill=function(){h("div.tipsy").remove()}; f.text=function(a,d){d.data("tipsy").setTitle(a)};var b,g;f.delays();h(n.body).on("overlayOpened overlayClosing",function(a){f.kill();return!0});l.prototype={show:function(){var a=this.getTitle();if(a&&this.enabled){var d=this.tip();d.find(".tipsy-inner")[this.options.html?"html":"text"](a);d[0].className="tipsy";d.remove().css({top:0,left:0}).prependTo(n.body);var a=(a=this.options.anchor)?this.$element.find(a):this.$element,a=h.extend({},a.offset(),{width:a[0].offsetWidth,height:a[0].offsetHeight}), e=d[0].offsetWidth,b=d[0].offsetHeight,g="function"==typeof this.options.gravity?this.options.gravity.call(this.$element[0]):this.options.gravity,c;switch(g.charAt(0)){case "n":c={top:a.top+a.height+this.options.offset,left:a.left+a.width/2-e/2};break;case "s":c={top:a.top-b-this.options.offset,left:a.left+a.width/2-e/2};break;case "e":c={top:a.top+a.height/2-b/2,left:a.left-e-this.options.offset};break;case "w":c={top:a.top+a.height/2-b/2,left:a.left+a.width+this.options.offset}}2==g.length&&("w"== g.charAt(1)?c.left=a.left+a.width/2-15:c.left=a.left+a.width/2-e+15);d.css(c).addClass("tipsy-"+g);d.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+g.charAt(0);this.options.className&&d.addClass("function"==typeof this.options.className?this.options.className.call(this.$element[0]):this.options.className);d.addClass("in")}},hide:function(){this.tip().remove()},fixTitle:function(){var a=this.$element,d=a.attr("title")||"";(d||"string"!==typeof a.attr("original-title"))&&a.attr("original-title", d).removeAttr("title")},getTitle:function(){var a,d=this.$element,e=this.options;this.fixTitle();"string"==typeof e.title?a=d.attr("title"==e.title?"original-title":e.title):"function"==typeof e.title&&(a=e.title.call(d[0]));return(a=(""+a).replace(/(^\s*|\s*$)/,""))||e.fallback},setTitle:function(a){var d=this.$element;d.attr("default-title")||d.attr("default-title",this.getTitle());null==a&&(a=d.attr("default-title")||this.getTitle());d.attr("original-title",a);if(this.$tip)this.$tip.find(".tipsy-inner")[this.options.html? "html":"text"](a)},tip:function(){this.$tip||(this.$tip=h('
').html('
'),this.$tip.data("tipsy-pointee",this.$element[0]));return this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.hide();this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}};h.fn.tipsy=function(a){function d(d){var e= h.data(d,"tipsy");e||(e=new l(d,h.fn.tipsy.elementOptions(d,a)),h.data(d,"tipsy",e));return e}function e(){var e=d(this),b=a.delayIn;e.hoverState="in";0==b?e.show():(e.fixTitle(),setTimeout(function(){"in"==e.hoverState&&e.show()},b))}function b(){var e=d(this),k=a.delayOut;e.hoverState="out";0==k?e.hide():(e.tip().removeClass("in"),setTimeout(function(){"out"==e.hoverState&&e.hide()},k))}a=h.extend({},h.fn.tipsy.defaults,a);a.live||this.each(function(){d(this)});if("manual"!=a.trigger){var g=a.live? "live":"bind",c="hover"==a.trigger?"mouseleave":"blur";this[g]("hover"==a.trigger?"mouseenter":"focus",e)[g](c,b)}return this};h.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:0.8,title:"title",trigger:"hover",anchor:null};h.fn.tipsy.revalidate=function(){h(".tipsy").each(function(){var a=h.data(this,"tipsy-pointee"),d;if(!(d=!a)){a:{for(;a=a.parentNode;)if(a==n){a=!0;break a}a=!1}d=!a}d&&h(this).remove()})};h.fn.tipsy.elementOptions= function(a,d){return h.metadata?h.extend({},d,h(a).metadata()):d};h.fn.tipsy.autoNS=function(){return h(this).offset().top>h(n).scrollTop()+h(c).height()/2?"s":"n"};h.fn.tipsy.autoWE=function(){return h(this).offset().left>h(n).scrollLeft()+h(c).width()/2?"e":"w"};h.fn.tipsy.autoBounds=function(a,d){return function(){var e=d[0],b=1Back').attr("href",d[0]).attr("title",d[1]).click(function(e){if(m[a]=== d&&B())return l(e)});k.enableNav(e);n.require("$11","tooltip.js").init(e)}function a(a,d){b().autoSize();var e=k.init();n.require("$17","html.js").init(e);m.length&&g();e.find("[data-script]").each(function(a,e){e=h(e);for(var b=-1,k,g=e.attr("data-script").split(" ");++bv)continue a;h(c).focus();break a}}function d(){p=null;m=[];return!0}function e(a){var d=h(a.currentTarget),e=d.attr("data-modal");if("back"===e){if(B())return l(a);e="close"}if("close"===e){r();var b=d.attr("href");if(b&&-1!==b.indexOf("#!"))return!0}else{var k="submit"===a.type,g=d.attr("title")||d.attr("data-title"),b=d.attr("href")||d.attr("action"),c=k?d.serialize():"",d=k?d.attr("method"):"get";e||(e=b.split("/").slice(1,4).join("-"));A(b, g,d,c,"modal "+e)}return l(a)}var k,u=n.require("$28","ga.js"),s={},m=[],p,A=f.load=function(d,e,g,c,r){var v=p;p=[].slice.call(arguments);v&&d!==v[0]&&(m.push(v),d+=-1===d.indexOf("?")?"?":"&",d+="r="+encodeURIComponent(v[0]));b().open().title("Loading ..").disableClose().disableNav().css("modal").html('
');r&&k.width(null).css(r).autoSize();var v=d.split("#"),s=v[1];s&&(d=v[0]);var v=n.require("$21","http.js"),B={type:g||"get",data:c||"",url:v.jsonLink(d)};v.ajax(B,function(b, v,f){var B=b&&b.html;if(!B)return b&&b.redirect?(p=m.pop()||null,A(b.redirect,e,g,c,r)):(b=h('

').text(v||"Unknown error"),k.enableClose().title("Error "+f||"?").html("").append(b)),!1;e=b.title||e||"Untitled";p&&(p[1]=e);k.enableClose().title(e,b.icon).html(B);f=b.js||{};s&&(f["#"]=s);a(d,f);u.page(d,e);k.init().one("overlayClosed",function(){u.reset()});return!0});return f},r=f.close=function(){b().close();return f},B=f.back=function(){if(previous=m.pop())return p=m[m.length- 2],A.apply(null,previous),!0};f.reload=function(){p&&A.apply(null,p)};f.initLink=function(a){a.click(e)};f.initForm=function(a){h(a).submit(e)};f.replace=function(d){b();var e=d&&d.html,g=d&&d.url,c=d&&d.title,p=d&&d.action;if(g)d=d&&d.css||g.split("/").slice(1,4).join("-"),A(g,c,"","",d);else if(e)k.open().html(e),c&&k.enableClose().title(c),a("",d&&d.js);else if("function"===typeof f[p])f[p]()};f.find=function(a){return b().init().find(a)};f.script=function(a,d){if(d){if("function"!==typeof d.run)throw Error(a+ " macro has no run function");s[a]=d.run;return f}return s[a]};return f}({},q,y));n.register("$8",function(f,c,n){f.listen=function(f,b){function g(){A[k?"show":"hide"]()}function a(a){p&&f.setAttribute("size",a.length||1);k=a;g();return a}function d(){u=null;b(k)}function e(){var e=f.value;m&&e===m&&(e="");e!==k&&(u&&clearTimeout(u),a(e),s?u=setTimeout(d,s):d())}var k,u;f=f instanceof jQuery?f[0]:f;var s=150,m=c.attachEvent&&f.getAttribute("placeholder"),p=1===Number(f.size),A=h('clear').click(function(a){f.value= "";e();return!1});a(f.value);h(f).on("input blur focus",function(){e();return!0}).after(A);g();return{delay:function(a){s=a},ping:function(b){b?(u&&clearTimeout(u),b=f.value,m&&b===m&&(b=""),a(b),d(),b=void 0):b=e();return b},val:function(d){if(null==d)return k;u&&clearTimeout(u);f.value=a(d);g()},el:function(){return f},blur:function(a){return h(f).on("blur",a)}}};return f}({},q,y));n.register("$20",{"\u00e1":"a","\u00e0":"a","\u0103":"a","\u1eaf":"a","\u1eb1":"a","\u1eb5":"a","\u1eb3":"a","\u00e2":"a", "\u1ea5":"a","\u1ea7":"a","\u1eab":"a","\u1ea9":"a","\u01ce":"a","\u00e5":"a","\u01fb":"a","\u00e4":"a","\u01df":"a","\u00e3":"a","\u0227":"a","\u01e1":"a","\u0105":"a","\u0101":"a","\u1ea3":"a","\u0201":"a","\u0203":"a","\u1ea1":"a","\u1eb7":"a","\u1ead":"a","\u1e01":"a","\u01fd":"\u00e6","\u01e3":"\u00e6","\u1e03":"b","\u1e05":"b","\u1e07":"b","\u0107":"c","\u0109":"c","\u010d":"c","\u010b":"c","\u00e7":"c","\u1e09":"c","\u010f":"d","\u1e0b":"d","\u1e11":"d","\u0111":"d","\u1e0d":"d","\u1e13":"d", "\u1e0f":"d","\u00f0":"d","\ua77a":"d","\u01c6":"\u01f3","\u00e9":"e","\u00e8":"e","\u0115":"e","\u00ea":"e","\u1ebf":"e","\u1ec1":"e","\u1ec5":"e","\u1ec3":"e","\u011b":"e","\u00eb":"e","\u1ebd":"e","\u0117":"e","\u0229":"e","\u1e1d":"e","\u0119":"e","\u0113":"e","\u1e17":"e","\u1e15":"e","\u1ebb":"e","\u0205":"e","\u0207":"e","\u1eb9":"e","\u1ec7":"e","\u1e19":"e","\u1e1b":"e","\u1e1f":"f","\ua77c":"f","\u01f5":"g","\u011f":"g","\u011d":"g","\u01e7":"g","\u0121":"g","\u0123":"g","\u1e21":"g","\ua7a1":"g", "\u1d79":"g","\u0125":"h","\u021f":"h","\u1e27":"h","\u1e23":"h","\u1e29":"h","\u0127":"h","\u210f":"h","\u1e25":"h","\u1e2b":"h","\u1e96":"h","\u00ed":"i","\u00ec":"i","\u012d":"i","\u00ee":"i","\u01d0":"i","\u00ef":"i","\u1e2f":"i","\u0129":"i","\u012f":"i","\u012b":"i","\u1ec9":"i","\u0209":"i","\u020b":"i","\u1ecb":"i","\u1e2d":"i","\u0135":"j","\u01f0":"j","\u1e31":"k","\u01e9":"k","\u0137":"k","\ua7a3":"k","\u1e33":"k","\u1e35":"k","\u013a":"l","\u013e":"l","\u013c":"l","\u0142":"l","\u1e37":"l", "\u1e39":"l","\u1e3d":"l","\u1e3b":"l","\u0140":"l","\u1e3f":"m","\u1e41":"m","\u1e43":"m","\u0144":"n","\u01f9":"n","\u0148":"n","\u00f1":"n","\u1e45":"n","\u0146":"n","\ua7a5":"n","\u1e47":"n","\u1e4b":"n","\u1e49":"n","\u00f3":"o","\u00f2":"o","\u014f":"o","\u00f4":"o","\u1ed1":"o","\u1ed3":"o","\u1ed7":"o","\u1ed5":"o","\u01d2":"o","\u00f6":"o","\u022b":"o","\u0151":"o","\u00f5":"o","\u1e4d":"o","\u1e4f":"o","\u022d":"o","\u022f":"o","\u0231":"o","\u00f8":"o","\u01ff":"o","\u01eb":"o","\u01ed":"o", "\u014d":"o","\u1e53":"o","\u1e51":"o","\u1ecf":"o","\u020d":"o","\u020f":"o","\u01a1":"o","\u1edb":"o","\u1edd":"o","\u1ee1":"o","\u1edf":"o","\u1ee3":"o","\u1ecd":"o","\u1ed9":"o","\u1e55":"p","\u1e57":"p","\u0155":"r","\u0159":"r","\u1e59":"r","\u0157":"r","\ua7a7":"r","\u0211":"r","\u0213":"r","\u1e5b":"r","\u1e5d":"r","\u1e5f":"r","\ua783":"r","\u015b":"s","\u1e65":"s","\u015d":"s","\u0161":"s","\u1e67":"s","\u1e61":"s","\u015f":"s","\ua7a9":"s","\u1e63":"s","\u1e69":"s","\u0219":"s","\u017f":"s", "\ua785":"s","\u1e9b":"s","\u0165":"t","\u1e97":"t","\u1e6b":"t","\u0163":"t","\u1e6d":"t","\u021b":"t","\u1e71":"t","\u1e6f":"t","\ua787":"t","\u00fa":"u","\u00f9":"u","\u016d":"u","\u00fb":"u","\u01d4":"u","\u016f":"u","\u00fc":"u","\u01d8":"u","\u01dc":"u","\u01da":"u","\u01d6":"u","\u0171":"u","\u0169":"u","\u1e79":"u","\u0173":"u","\u016b":"u","\u1e7b":"u","\u1ee7":"u","\u0215":"u","\u0217":"u","\u01b0":"u","\u1ee9":"u","\u1eeb":"u","\u1eef":"u","\u1eed":"u","\u1ef1":"u","\u1ee5":"u","\u1e73":"u", "\u1e77":"u","\u1e75":"u","\u1e7d":"v","\u1e7f":"v","\u1e83":"w","\u1e81":"w","\u0175":"w","\u1e98":"w","\u1e85":"w","\u1e87":"w","\u1e89":"w","\u1e8d":"x","\u1e8b":"x","\u00fd":"y","\u1ef3":"y","\u0177":"y","\u1e99":"y","\u00ff":"y","\u1ef9":"y","\u1e8f":"y","\u0233":"y","\u1ef7":"y","\u1ef5":"y","\u017a":"z","\u1e91":"z","\u017e":"z","\u017c":"z","\u1e93":"z","\u1e95":"z","\u01ef":"\u0292","\u1f00":"\u03b1","\u1f04":"\u03b1","\u1f84":"\u03b1","\u1f02":"\u03b1","\u1f82":"\u03b1","\u1f06":"\u03b1", "\u1f86":"\u03b1","\u1f80":"\u03b1","\u1f01":"\u03b1","\u1f05":"\u03b1","\u1f85":"\u03b1","\u1f03":"\u03b1","\u1f83":"\u03b1","\u1f07":"\u03b1","\u1f87":"\u03b1","\u1f81":"\u03b1","\u03ac":"\u03b1","\u1f71":"\u03b1","\u1fb4":"\u03b1","\u1f70":"\u03b1","\u1fb2":"\u03b1","\u1fb0":"\u03b1","\u1fb6":"\u03b1","\u1fb7":"\u03b1","\u1fb1":"\u03b1","\u1fb3":"\u03b1","\u1f10":"\u03b5","\u1f14":"\u03b5","\u1f12":"\u03b5","\u1f11":"\u03b5","\u1f15":"\u03b5","\u1f13":"\u03b5","\u03ad":"\u03b5","\u1f73":"\u03b5", "\u1f72":"\u03b5","\u1f20":"\u03b7","\u1f24":"\u03b7","\u1f94":"\u03b7","\u1f22":"\u03b7","\u1f92":"\u03b7","\u1f26":"\u03b7","\u1f96":"\u03b7","\u1f90":"\u03b7","\u1f21":"\u03b7","\u1f25":"\u03b7","\u1f95":"\u03b7","\u1f23":"\u03b7","\u1f93":"\u03b7","\u1f27":"\u03b7","\u1f97":"\u03b7","\u1f91":"\u03b7","\u03ae":"\u03b7","\u1f75":"\u03b7","\u1fc4":"\u03b7","\u1f74":"\u03b7","\u1fc2":"\u03b7","\u1fc6":"\u03b7","\u1fc7":"\u03b7","\u1fc3":"\u03b7","\u1f30":"\u03b9","\u1f34":"\u03b9","\u1f32":"\u03b9", "\u1f36":"\u03b9","\u1f31":"\u03b9","\u1f35":"\u03b9","\u1f33":"\u03b9","\u1f37":"\u03b9","\u03af":"\u03b9","\u1f77":"\u03b9","\u1f76":"\u03b9","\u1fd0":"\u03b9","\u1fd6":"\u03b9","\u03ca":"\u03b9","\u0390":"\u03b9","\u1fd3":"\u03b9","\u1fd2":"\u03b9","\u1fd7":"\u03b9","\u1fd1":"\u03b9","\u1f40":"\u03bf","\u1f44":"\u03bf","\u1f42":"\u03bf","\u1f41":"\u03bf","\u1f45":"\u03bf","\u1f43":"\u03bf","\u03cc":"\u03bf","\u1f79":"\u03bf","\u1f78":"\u03bf","\u1fe4":"\u03c1","\u1fe5":"\u03c1","\u1f50":"\u03c5", "\u1f54":"\u03c5","\u1f52":"\u03c5","\u1f56":"\u03c5","\u1f51":"\u03c5","\u1f55":"\u03c5","\u1f53":"\u03c5","\u1f57":"\u03c5","\u03cd":"\u03c5","\u1f7b":"\u03c5","\u1f7a":"\u03c5","\u1fe0":"\u03c5","\u1fe6":"\u03c5","\u03cb":"\u03c5","\u03b0":"\u03c5","\u1fe3":"\u03c5","\u1fe2":"\u03c5","\u1fe7":"\u03c5","\u1fe1":"\u03c5","\u1f60":"\u03c9","\u1f64":"\u03c9","\u1fa4":"\u03c9","\u1f62":"\u03c9","\u1fa2":"\u03c9","\u1f66":"\u03c9","\u1fa6":"\u03c9","\u1fa0":"\u03c9","\u1f61":"\u03c9","\u1f65":"\u03c9", "\u1fa5":"\u03c9","\u1f63":"\u03c9","\u1fa3":"\u03c9","\u1f67":"\u03c9","\u1fa7":"\u03c9","\u1fa1":"\u03c9","\u03ce":"\u03c9","\u1f7d":"\u03c9","\u1ff4":"\u03c9","\u1f7c":"\u03c9","\u1ff2":"\u03c9","\u1ff6":"\u03c9","\u1ff7":"\u03c9","\u1ff3":"\u03c9","\u0491":"\u0433","\u0450":"\u0435","\u0451":"\u0435","\u04c2":"\u0436","\u045d":"\u0438","\u04e3":"\u0438","\u04ef":"\u0443"});n.register("$7",function(f,c,h){f.init=function(){function c(a){return f[a]||a}function b(a){return String(a||"").toLowerCase().replace(e, c)}function g(a,d,e){for(var b=a.split(k),g=b.length;0!==g--;)(a=b[g])&&null==e[a]&&(d.push(a),e[a]=!0);return d}function a(a,e){for(var k=[],c={},f,u=e.length;0!==u--;)(f=e[u])&&g(b(f),k,c);d[a]=k}var d=[],e=/[^a-z0-9]/g,k=/[\-_\s.?!;:,*^+=~`"(){}<>\[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/,f=n.require("$20","flatten.json");return{find:function(a,e){var k=[],c=-1,f=d,u=f.length,t,h,z,C,l,v,D=g(b(a),[],{}),G=D.length,n=e?!0:!1;a:for(;++c').text(g.label),A=h('
'),s=void 0,z=void 0;if(z=g.icon)s=h("").attr("class",z).appendTo(A),t?(s.attr("lang",t),g.lang=t):-1!==z.indexOf("lang-"+v)&&(s.attr("lang",v),g.lang=v);for(z in g)A.data(z, g[z]);A.append(r);m(k,A)}(B=d.length)?(E&&e(),p(0)):(p(null),a(),U.trigger("locoAutonone",[]))}function m(a,d){q.append(d);d.click(function(e){e.stopPropagation();p(a,d);r();return!1});return d}function p(a,e){w&&(w.removeClass("selected"),w=null);C=null;null==a?d(""):(e||(e=q.find("div.auto-comp-result").eq(a)),e.length&&(e.addClass("selected"),C=a,w=e))}function A(a){if(B){var d=B-1;null==C?a=0a?a=d:a>d&&(a=0));return p(a)}}function r(){if(null==C)I.val(""),d("");else{var e=q.find("div.auto-comp-result").eq(C), b=e.data()||{label:"Error"},g=b.value,f=b.label;d(g);I.val(f);k();e=e.clone();e.data(b);c();m(0,e);B=1;p(0,e);a();e.trigger("locoAutocomp",[g,f,e])}}var B=0,t=!1,E=!1,z=g.form,C=null,w=null,v=h(g),D=v.attr("name"),G=v.attr("data-mode"),H=v.attr("data-provider"),J="hint"!==G&&h('').appendTo(z),U=h('
').replaceAll(v),q=h('
');H&&(H=new l(H));J&&v.attr("name","_"+D);v.attr("autocomplete")|| v.attr("autocomplete","off");U.append(v).append(q);k();v.focus(function(a){E=!0;1').appendTo(e.form));this.list=h('
    ');this.icon=h(' ');this.selection=h('');this.handle=h('').attr("tabindex",a.attr("tabindex")||"").append(this.icon).append(this.selection);d=h('
    ').addClass(e.className).append(this.handle).append(this.list).replaceAll(e); b&&d.attr("id",b);g&&a.hasClass("hastip")&&(d.attr("title",g),n.require("$11","tooltip.js").init(d,{gravity:a.attr("data-gravity")||"s",anchor:a.attr("data-anchor")}));this.wrapper=d;this.up=d.hasClass("up");for(this.clearOptions();d=f.shift();)this.addOption.apply(this,d);this.enable();this.close();if(A=c.length)for(p=0;pc&&(g-=c-a.width(),a.css("min-width",String(g)+"px"))};c.close=function(){var a=this.wrapper,d=a.data("tipsy");this.list.hide();this.active=!1; -1!==this.hover&&(this.getElement(this.hover).removeClass("over"),this.hover=-1);a.removeClass("active");d&&d.enable()};c.hoverItem=function(a,d){-1!==this.hover&&this.getElement(this.hover).removeClass("over");this.hover=a;-1!==a&&(d=d||this.getElement(a),d.addClass("over"))};c.hoverNext=function(a){var d=this.options.length;if(d){d-=1;if(-1==this.hover)a=0a){this.close();return}a>d&&(a=0)}this.hoverItem(a)}};c.enableChange=function(a){this.eventName=a;this.eventData= [].slice.call(arguments,1);return this};c.enableConfirm=function(a){this.confirm=a;return this};c.clearOptions=function(){this.index={};this.length=0;this.options=[];this.list.html("");this.hidden.val("");this.idx=this.hover=-1;return this};c.destroy=function(){this.clearOptions();this.hidden.remove()};c.addOption=function(a,d,e,k,g){var c=this.options.length,f=h("").addClass(e||"icon no-icon"),p=h('').text(d||a),p=h("
  • ").append(f).append(p).appendTo(this.list); g?g=g.split("-").shift():e&&-1!==e.indexOf("lang-"+a)&&(g=a);g&&f.attr("lang",g);p.attr("data-option",c);this.options[c]={value:a,text:d,lang:g||"",icon:e};this.index[a]=c;this.length=c+1;k?this.disableIndex(c):b(this,c,p);return c};c.disableOption=function(a){return this.disableIndex(this.index[a])};c.disableIndex=function(a){(a=this.getElement(a))&&a.addClass("disabled").off();return this};c.enableOption=function(a){return this.enableIndex(this.index[a])};c.enableIndex=function(a){return b(this, a)};c.reIndex=function(){this.index={};this.length=0;for(var a=this.options.length;0!==a--;)this.index[this.options[a].value]=a,this.length++};c.selectValue=function(a,d){return this.selectIndex(this.index[a],d)};c.selectIndex=function(a,d){var e=this.options[a];if(e){var b=this,g=b.idx,c=e.value,f=e.icon||b.defaultIcon,p=function(){null!=g&&b.getElement(g).removeClass("active");b.getElement(a).addClass("active");b.setLabel(e.text).setIcon(f,e.lang);b.hidden.val(c);b.idx=a;d&&b.change()};g===a?b.hidden.val(c): d?"function"===typeof b.confirm?b.confirm.call(null,e,function(a){a&&p()}):b.beforeChange(c)&&p():p();b.active&&b.close()}return this};c.setLabel=function(a){this.selection.text(a);this.prefix&&this.selection.prepend(h('').text(this.prefix));return this};c.setIcon=function(a,d){this.icon.attr("class",a).attr("lang",d||"");return this};c.val=function(){var a=this.options[this.idx];return a&&a.value};c.change=function(){var a=this.val(),d=this.save,e=this.eventName||"change", b=[a].concat(this.eventData||[]);this.wrapper.trigger(e,b);d&&d(a);return this};c.beforeChange=function(a){var d=h.Event("locoBeforeSelect");this.wrapper.trigger(d,[a]);return!d.isDefaultPrevented()};c.renameOption=function(a,d){var e=this.index[a],b=this.options[e];b&&(b.text=d,this.getElement(e).find("span.label").text(d),e===this.idx&&this.setLabel(d));return this};c.removeOption=function(a){var d=this.index[a],e=this.options[d];e&&(a=this.val(),this.getElement(d).remove(),this.options.splice(d, 1),this.reIndex(),a===e.value?this.selectIndex(0,!0):this.selectValue(a,!1))};c.getElement=function(a){return this.list.find("li").eq(a)};c.getWrapper=function(){return this.wrapper};c.persist=function(a){var d=this.id||this.name,e=a.fetch(d);null!=e&&this.selectValue(e,!0);this.save=function(e){a.store(d,e)};return this};c.listen=function(a){return this.on(this.eventName||"change",a)};c.on=function(a,d){this.wrapper.on(a,d);return this};c=null;return f}({},q,y));n.register("$30",function(f,c,q){function l(b){var g= [],a=h([]);this.hidden=a;this.selected=g;this.selectedIcon="icon icon-checkbox";this.constructor.call(this,b);this.wrapper.addClass("multi");for(var d,e,k,c=h('')[0],f=this.options,m=f.length,p=-1;++pl&&d.placeholders(c);b.getAttribute("data-modal")?e.initForm(b):b.action&&0!==c.attr("action").indexOf("#")&&!b.target&&d.jsonify(b);c.hasClass("hasreveal")&&d.revealify(c);c.find("input.auto-comp").each(function(a,d){k.init(d)}); c.find("select.selector").each(function(a,d){d.hasAttribute("multiple")?s.create(h(d)):u.create(h(d))});c.find("button.hastip").each(function(a,d){m.init(h(d))})});c.find("a").each(function(d,k){-1!==k.className.indexOf("hastip")&&m.init(h(k));if(-1!==k.href.indexOf("/modal/")||k.getAttribute("data-modal"))e.initLink(h(k));else{a.link(k);var c=k.getAttribute("data-ajax-target");c&&(c=h("#"+c),h(k).click(function(a){a.preventDefault();c.addClass("loading");h.get(k.href,function(a){a=f.$(a).replaceAll(c); b(a);a.trigger("locoAhah")});return!1}))}});d=e=k=c=null;return f};f.$=function(b){return h(c.innerShiv?innerShiv(b,!1):b)};h.fn._html=function(g){return null!=g?(g=this.html(c.innerShiv?innerShiv(g,!1):g),b(this),g):j.html()};h.fn.macro=function(b,a){if("function"!==typeof b.run)throw Error("macro has no run function");b.run(this,a||{});return this};f.el=function(b,a){var d=q.createElement(b||"div");a&&(d.className=a);return d};f.txt=function(b){return q.createTextNode(b||"")};f.h=function(){function b(){e= /[<>&]/g;k=/(\r\n|\n|\r)/g;c=/(?:https?):\/\/([a-zA-Z0-9\-_\.\?%~&;=\/]+(?:#.*)?)/g;b=null}function a(a){return"&#"+a.charCodeAt(0)+";"}function d(a,d){return''+d+""}var e,k,c;return function(f,m){b&&b();var p=f.replace(e,a);m&&(p=p.replace(k,"
    ").replace(c,d));return p}}();f.noop=function(b){b&&(b.preventDefault(),b.stopPropagation(),h(b.target).blur());return!1};return f}({},q,y));n.register("$18",function(f,c,q){function l(a){function d(){a.value===c&&(a.value="",b.removeClass("placeheld")); return!0}function e(){""===a.value&&(a.value=c,b.addClass("placeheld"));return!0}var b=h(a);if(!b.hasClass("auto-comp")){var c=b.attr("placeholder");if(c)return b.focus(d).blur(e),e(),{kill:function(){d();b.off("focus",d).off("blur",e)}}}}var b=f.enable=function(a){function d(a,d){d.getAttribute("data-was-disabled")||(d.disabled=!1)}a.find(".button").removeClass("loading");a.find("button").each(d);a.find("input").each(d);a.find("select").each(d);a.find("textarea").each(d);c.attachEvent&&a.hasClass("has-placeholders")&& f.placeholders(a);delete a._disabled},g=f.disable=function(a){function d(a,d){d.disabled?d.setAttribute("data-was-disabled","true"):d.disabled=!0}a._disabled||(a.find(".button").addClass("loading"),a.find("button").each(d),a.find("input").each(d),a.find("select").each(d),a.find("textarea").each(d),a._disabled=!0)};f.jsonify=function(a,d,e){a instanceof jQuery||(a=h(a));a.disable||(h.fn.disable=function(){g(this);return this},h.fn.enable=function(){b(this);this.placehold&&this.placehold();return this}); var c="";a.find('[type="submit"]').click(function(a){a&&a.target&&a.target.name&&(c=encodeURIComponent(a.target.name)+"="+encodeURIComponent(a.target.value));return!0});a.submit(function(b){if(b&&b.isDefaultPrevented&&b.isDefaultPrevented()||e&&!1===e(b))return!1;var g=a.serialize(),g=g.replace(/%0D%0A/g,"%0A");c&&(g&&(g+="&"),g+=c,c="");a.disable();var f=n.require("$21","http.js"),g={url:f.jsonLink(a.attr("action")),type:a.attr("method"),data:g};f.ajax(g,d,function(){a.enable()},a);b.preventDefault(); b.stopPropagation();return!1})};f.revealify=function(a){a=a.closest("form");a.find("div[data-reveal-if]").each(function(d,b){function c(a){var d;t=t||a.target;if("."===r)d=Boolean(t&&t[B]),p&&(d=!d);else{var b,e=h(t.form).serializeArray();for(b in e)e[b].name===A&&(d=e[b].value);d=p?B!==d:B===d}if(d!==m)if(m=d,a)g[m?"slideDown":"slideUp"](200);else g[m?"show":"hide"]();return!0}var g=h(b),f=/^(\!?)([_\w\-\[\]]+)(\.|!?=)(.*)$/.exec(g.attr("data-reveal-if"));if(f){var m,p=f[1],A=f[2],r=f[3],B=f[4], f=a[0][A];if(f.type||null==f.length)f=[f];d=f.length;for(var t;0!==d--;)t=f[d],c(),h(t).change(c).removeClass("jshide");f=f=t=null}});a=null};f.linkify=function(a){var d=a.getAttribute("data-icon");if(d){var b=h(a),c=h(" ");c.attr("href",a.form.action);c.attr("class",b.attr("class"));c.attr("tabindex",b.attr("tabindex"));b.attr("tabindex","-1");c.text(b.val());d&&h("").prependTo(c).addClass(d);b.hide().after(c);c.click(function(a){b.click();return!1})}};f.placeholders=function(a){var d, b=[];a.find("input[placeholder]").each(function(a,c){"password"!==c.type&&(d=l(c))&&b.push(d)});b.length&&(a.submit(function(){for(var a in b)b[a].kill()}),a.addClass("has-placeholders"),d=i=null)};return f}({},q,y));n.register("$4",function(f,c,q){function l(a,d,b){function e(){c();k=setTimeout(d,b)}function c(){k&&clearTimeout(k);k=null}var k;e();h(a).mouseenter(c).mouseleave(e);return{die:function(){c();h(a).off("mouseenter mouseleave")}}}function b(a,d){a.fadeTo(d,0,function(){a.slideUp(d,function(){a.remove(); h(c).triggerHandler("resize")})})}function g(a,d){function e(d){k[f]=null;b(h(a),250);g&&g.die();var c;if(c=d)d.stopPropagation(),d.preventDefault(),c=!1;return c}var g,f;h('