From 939a3f1e31f6426e4bfba84f50d397d468c6542e Mon Sep 17 00:00:00 2001 From: Sarjuuk Date: Sun, 19 Mar 2017 17:03:48 +0100 Subject: [PATCH] Markup * add some more options to tags (mostly directly setting class and style) --- static/css/aowow.css | 30 ++ static/images/help/privileges/example.jpg | Bin 0 -> 17155 bytes static/js/Markup.js | 554 +++++++++++++--------- 3 files changed, 360 insertions(+), 224 deletions(-) create mode 100644 static/images/help/privileges/example.jpg diff --git a/static/css/aowow.css b/static/css/aowow.css index 3af95628..8465fffd 100644 --- a/static/css/aowow.css +++ b/static/css/aowow.css @@ -60,6 +60,20 @@ a.open { color: white; } +img.content-image { + border-radius:2px; + margin:2px; +} + +img.content-image.content-image-shadowed { + box-shadow:0 3px 10px rgba(0, 0, 0, .35); +} + +a:hover img.content-image { + -webkit-filter:brightness(1.35); + filter:brightness(1.35); +} + img.border { border: 2px solid #404040; background-color: #080808; @@ -74,6 +88,10 @@ a:hover img.border { background-color: #101010; } +img.no-border { + border:0 !important; +} + .pad { padding-bottom: 10px; } @@ -419,6 +437,18 @@ a.revealtoggle padding-top:18px; } +.markup-float-left +{ + float:left; + margin:0 10px 10px 0; +} + +.markup-float-right +{ + float:right; + margin:10px 0 0 10px; +} + /**************************************************************/ /* CSS BELOW TO BE MOVED TO A PROPER LOCATION AND/OR REFACTOR */ /**************************************************************/ diff --git a/static/images/help/privileges/example.jpg b/static/images/help/privileges/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c1e7182cb39005d218779e697c549f240d37a36 GIT binary patch literal 17155 zcmbt*Wmp{B((Vi{fiP$Y8gzi5!9BrU26q?;I=F`bAvgg73@#zKySqCChhPcL;F>@n za7nWFKIgm7x%bC+){mamwW{8FtGfE>p0!rr&EKs89!YsxzXSl}+( z4QlHJ00L0%#To#>-6}GRm8+|xAUnIg3!ACAgP8>z)B(osY3j(%$;QDB5Ek=vG=S_l(@Y#gjm4qgsw zUQRa7XWV>zd{3#lI5;`jIk?z4xmY>*1fOvUa&S=p)oAX$Ih(%}RF{d9*FLi;y@q=gIA+1k<7+QFXs7ow?| zgPW@e%{|jUA;28}f&GuU`Zq--rT@Pw4E8GlzhPZm)h+(T_df!=Xm~kVu&Z0RIJh}O zE$-E6e;GRpN;q4Xx;i*(I5^n-okdkE2UiCdD+fnv2?!6hk}1^M{@3|$eI+G9IeQmZ zQ+ud|oTLcNJp!AxwYlK)XU`>GaPde;NO1CSa!PSL=jG;p!7s_n$tA`2f>(n3Z(B(R zs2j|}-t})=^MBb&{y%Mhl>*H1-m|2Iv$ea0xwNwbjQV%Tg4X|m3m-SXq=b|tkHib9 z7yp^dA6xVPz~wJn-v6g9`#l-v^_}#F7wFmz+ z;JrQyG735>Dmpd>I>x_^{G;;!@7#3&Kp229U;;7_1V91-kwL(_9>C=NJ&uG7Kn4Q; zx&P5IfT(ClD457t_d+1*J?npl04VqLQPI&bF!2BYRAeAB`h6em!NXrs-baH90HL8j z!N=fyPCz&vk7-IXMXZ%TqV^_+i-^Ig@6K*&!x@ll?eqN+L35TLz@spNWre*AHw zb5)&|kjTur>KVqQL_lm7q?=CTZUOKB`93BPG6*0Bxb@pX1!NK;`Kw|9#lio57blNB z@MUsyM^rZrTVf zPPc6ShmSlx6eu|@Ho3k9IxBThSD9?O>-SM)X6?FSkqnv#-^wE=4DsX7ftBO!JfY4g z5S+tU)+>C~&KnIXWKBiU7jU0MoEjACBsf{V`Q2CeWbt@$Fr;g+dQjnVh=XFfok)dtg)cV^t4_jbG4l*S==PdK+U!(fDW2} zy(fAgr#U|Qm?@W+hLWk&ez{iP`WX2dqca3>GaOWanU8WjGiAV!X!Kkp2*QVBxpoqr zdSnW3F{Ql?{_4P_#oAb>itlRq@CPUEC<6ihvpB?)t(@s_zF;%e)_t4-+#c-u_xY^A zamh|ZFgKMO$EAB7PG>Q1ek2yW-7v}3&oi1L=-@y9Jrl+Aez=vB# zR4}tiM@}_}lO#VTA%rYOUNd<}2n86sDcAXS69|C;jV}1QwH5O-z@JYYant;9&%7Gy z`Fp|wy-;?!a3-jj=5Dc&us+>TZDPF1fU3DDg#&0TIc#bNliwr1UyMZe`FMK7a;{3m zXMB#U{hTqSdtiX!rfjI<{c|F+vY7Y$cpJL3OIWav1E!h$|I1n>Z~(417sb)O^7}|~ z2N1Cof9*JIK`Ao$rR)S+;#*NW_OYjrjND67`W&rB8`n6?-?f*b20+4EF0LR<-puTs za`|Pqwtb9joETD`xS7d0H!SXb8u>B*F*au1K#TYnT@tx?^@poW9WVSt8p0-7x%#0Q>*JK-jbPeR^vJ71fXYAQu3Oq}^HYq)dZ4Q+1JKfIaJit@PFwe6A#_6nb3zAwx% z3qO0xQrE^Kk*8G2p^w_OLW5r zXZMV_#X z^6))ov%_jRyy?SD@CELg(&B`Lqgr@eJ|Dv!U@|JA{#uZCqXL}yXC$EJR|@4q{{30tId1$wOwCao~r2F zc->TUEanF1O1X)g4Ju9eI#zL%60?wX{c@hd>ORl+p9FQ*E!wW_ z8e@LAGbNVlOOH}sYRB%p>E&vqg=EGiY|CmbeR;UC(j202U7fc9bI7(QhzDnjk=$w@ z7jD-3!mS1LV7Utw-?N|h^aS)yB+nMZ2MdgfAUT$`EBA{-r(Zw)_AhzWmxlQdO~0XH?xEKHfpYea47<+9oZoryBRbdjA0N{3*EoO4 z?|r9T@-iN#F+wvbvk{gRe*^swPVv_d|I&{F{ey#iuW$UH^%Go7F8?C*3+G>iUj5}4 zz2JxL{$Fl^Z~uqegrEIAKd0`aN4^hotMf$6bybK0_~HMG9`Lso!0|p6RR5%?dfw+x zibP~5hi}*aWEENT-dt*GD7bFmV9S}{0~)Kp?ydpNq(Ysju22%pv3p>$&r*CdZ*c zDHfQZJAmGhiB9t}^TA@s&f?Q1p$=7o0|AHE31!vaK26n;Z~NXXCrqhkBr*i|j!?f90o~bdeF=i_|<@NPC3V{1%lL|f(#sx-=gu%0$n2M4B z34L{=E6U#Iuly?JnsT>YY+JR7Y_`^&1m|w#Bfkq{xt2GPv2IX?4n@S}Z^aakUI_8b z;9#YXJ==KG64)Fd^2`|kFN~3~#>4`MQEShyr0pE#?w1}c)i#tE+pc+LWH;-lPBz37 z3=*pFY2cI+NIzWQLcRlp@;G3~JfG6PM)Qy2@yd|A1E_M&JxXbgeXuAiVwbTKt!)0B zlMn?UacyGIF7`>Q69Lan$1mD6@H1XvsHJPx|31EbQu;jQ!liWmr4U}mfKhmaJ#|(A z-Uf4XAUZQ$!ttp=AK6C$BOQ?kTI2!vZ{ zWiG2fh#_GjD{hehixa>lQJT9{@g7%c+DGul-P{-rnQ5A8UGf>bQzf@e-h84RgPLz{ zjy8QpiHW8`N>=!>W_2XQABuWg=?`GHG0v`KsB*JyO7fk+D$MP*`~rDDaYOuiNf8Z7 zK2u}H3Y;7>pYqI#`jD{Aq%LF|h6SJo)-594K5sia-90_t97_^g(0@owe)es{j!brQ zYW^FokO)|Y&BC03cJZA5>{+o2o~Sizl)+J8%=-}MyI)}ZxKGcs zXs$V=WsY-b`)eKrhrg;`iqgKVMLJyyx}YS+8s%X8P#C>a-RQbrwJ_qAC3XPttV{DFFbj_xpLCi(|~VGumkEEDsmhL129 z=CNpm*oe-I7H34%)uZLo5zW___KXdU8u>!J>-yw$iD_jEy+!S8Td-&ID+@YW^evM$ z@(XfL@tbaNlQ*(iira)AeiHjS&zW3^mofTe&45mm(Lk!w+`rxeBWEzHsf+a!hh_J~ zV$RNpKcmA0avYfC@ekXh^q)7ZU1NQl^EC&3>S-5a=e)P>$#Obc8Fgtk`DNuJ?$8IA z6cUpab%%1xa`^(*a`bu6oLu#m5|nz?6>!+(T6lh>b{e_m@C)tl@ub+KIAyM)mrU5U zWjWJ(hT}YPxJb`){cPf?$>%fOAx{rFE1vY0IkNvU{aTt#q;A2r;X+zzLP(Ep(>cXA zV&atC_FamNZZ3%*f(iC?XrqiFyQslkPMS(fo25u3MyYATp@N)N))|w6W0KT>OJpIr z1-VeyF0w#K85aKaR<4l_t4SH_MbySD;p^UlqougZXYkv&mgC0>pT@KeE#5l|R6OBB@zODPV5z|e9RJ{fS)1?*XgoCMt z^*J)3WMP>T&gz9wbPJ!cYGXyhLQLtNuerV4Cj_fw$ zot^Uj%PF}*shnaW5ps({QJyLA@$`yepI7I;@JQUtq?_tT=)Eih=WFX(?K12%f$#dR zQi=9cosi;*C8=qa#uCApicDeRiVo-qu{QnE8ohRV?NWIgWtYaaS{t>B*tnp)iuis; z=e24Z6?JuWZ>=LYguX|9uH5sy^*~2>%ie^Bdh99+TqBp6UUKI%@Womqn{3$9^SqG_ z*$#<_&q+z$4j9IxbP;|19A5HBl=^d1>Dtpmz8`q7W11EqvlI5aL=E2sY^r^%*FeRXu#l(bYoK^W z{_#SYo+n(eT;<2Qfs;QgB_1ntG&OToZ!N{TtL> znT-o(3a;0b>1-+zp0PT1Eh-g0VS@Pbp*@Vz{W2O|Zf1*B`upE6dk6*#(9^1CNO*AI z4$!hZPF9#JZn=Wt=SX%32v+v5^r{IyG-gmZ70^Em_Mg6=W((^- zKJJ+XzwsYG$wP)M{-|=hir)=wxL_UfyRN=}XB662>FaGjEq^ofwr_hIYeF@_*7>Fz zztbtPF~Q{G(dEGT$m)7OZBvSMqD7BakBkWb2AU_cr7z}crpL%z9Hikr^Rl(J(Y7Cy z25G{MMPW`CYfLe_zDl&Yda4JqCGsK?wcaNb8wNw*#FWeeSTHj+AJTi#dZtEy!T#J< zDtqE}@6#CpwVV@$>eiFZ6`xPvu@5QN3zie+V2s$96I1AXeXTM31}?9|>%Q7iY>^Ux z8T{$gCOVqElc3ShfchY% z8OX?^m9jt0X*>~c9`=8fThIAo5veV{)`oX2n=n>~u1W?PNQkedA$wDsA)cMbB^%qJ z&j-L2$L3eAA|aIFHpni4paWYsj6?la9&n?5FF^&anY?rhJ&;uA8hjHTyDb~6$-z_a zAC7?;j%?BZ2)f#-K;J0FpkHL}_1u!Nul!-LNRfgRUKF~dA!w#FMJ{t1$iA76L0# z@8rciaETm&68ZxeI8H+kD7_u?0j7Mqm)k`&@V1t^?Wy9%l9huDmVDw>=?0$|4 zVfk6=u$*walz86tmd{*uk~!iXNC0zr)GDYcMQ+7GuGE8MjB1d^yU~i6j?gCRIt90m zBtRAmiTew@i6BGyGy$=h_{4u>6OJyR;t54=N1(|)t zysmrKE=we#81SUb{g^;zJMGx#By0o~Up$M*6TxA1S9RE@nukhFCqJ<@9P`%+zOZZ1 z^gE|8fizjCo=OgAYA(+kz5fb;>Zf{2FU{C=6mCxi0rr66f*q>3X<&36Rsf>Qzh4In zIE(#DM*7!K1tFTCW2VTu#TDsVig!nJttHkG01_|u zsRrs~UD4)nn+DIa{Ii63-JBG8<@i{+nz$mlCQ=GSgH`dA-eiL|^Az(`SZ&;Fq;^W5 zR@WAnm$u`fme3r?-kh9yMjMNnB^{Cj4O4`IX`Dbfd1sC8v(>f;+_<`>eivKomn7Ll zMEr{ZvEfm0cx;ipC}G@{<1mt9Q^J}moMMoFaHdo_vR-SUjJ4&}iHJa}%-E?`QRTqa zmjUWkb0fBhxd=8X68mUvDM-9T63T|c2vdj^$tX@LvsU-ivKW;AlS6&Iy;?-LQ=r+j z1*<(%P9cdHfdV=^K|cZEcaN7T@I~e1`cAc13D}h;(QXvBGkx>^h%=ueLw=y*XfR%^ zy#ggTO|nm=7%81{Cp0wFe%^-VJVfqQ`<_@%^-n3=EicD2mUuVBjFDSmEQO2{wy%c0 zoCFnazM@N4O@COT;OAloS~JsS3;ZGOH)@O=k)LS3LZUSRRm{BXa^@pRcGL-7svEWX z4in2XOGgG#lSA?6GyR)g^@NqNsrg}YYg0uI#8j$ntB<^5r-)NDU6srySCuJ3j-K?O z)elQBMajQ}*y}un7FE-48WseEs2L^o3BJ^jHzg82X?P85seS9Pqa0$k+v)%{EPH_+;=qJ8@rT_Y%?dhg>hqHDO&z9oxHq!eo5E2>!AbtJOi41*!1oSv7T-S++ zMJDvLmChXxIFj>atD-2N?Ds4a_HY-cX+*a#o2A_kw+C`S&XJ2B# zMbnRY3Xv0zt3yQuJBmj29zfqT?5lkoiElFjYj684E2sY?Fmw;>jp+sg%os)*+AX=Q73j8D^2=}JkG9fAtJ zL(-_LXPqd>G!>UV+NWTw_ zh<#vj)4b&hV`RIm*bhtQG^t+k( zWSS`=9FsMA}_rD>iHcY z&STF7Xg<>`P86h`|@$bCchd-ZKT`BOz2xzWGVPVedyZ3P% z=}3Nb0-b74roOIH8%FV|be^%$^5XE3gfKHjbzHfJM)OCn7TfC=7g9PFdUD4-hnudx z$=FgaaCK%|sz{|K|JbHA@WJ&>{ouCGg+sP?i(hN8+)a(q1)cjBWp7`7wy13$Im43H zaQIE-w|EYK*B;`To)=zr3stcHI^#6H4f39gpv%q9IN3^r1LK6a;OCnU!PCfP_w!8R zCWeLf4q5)6^hL*1I>iN78_~W<0ro6w52>U8B$n-9pH*?xi4KSAolL;~+}7ufOr-sr zR4|~4r}SP#VfTIObpQV64gh{lh+LW`s*>gJR(-HQ2rx_?JXgi7vxU|F^4D1U>(EXF z*n4@3J}NFaQGS0|z2Y^x*Y*-_2BYh99AK+H+Ow=bKD~e3OM^CV?;rjnVyE{IyjwrO z03k~KkY7N*?QTBYQ+!GB@v`84`JdramVdb@wS0KxrP~!e`DT_I)$UL6@C99b_k7(a zcgk@6b8XB2OSAfEnZLl~{d;&2J&=35dOu-=F2Tw^DQi`MJbNoLco99rf1HK+Kq(N9 z+6&oXk{h+Ceg)(rp}>N9h42e^s&!aAq62xDCb zOVu?Fu3pg=c++6@Eo>rIiO)8wsi_DJO@pUlkhdP;!@TeiYhvnvk_6_$ysx`y+DzXi zJygsRHYw_Aq1VufLl|$Iw#ho*Q=0||?z!_FpmAAx<=V?$D=!}=fhD-Et@lm1;*fcP zD|Ht;9^L9H7kCqUhU$8yoAq&w-r>!&<5xNADT_slw5U|)`aBT5=dXv4fHIzifXHu= zbyuP`r)_z=c!+Cj1Bb^Z-e07CxEm^XJTBkt%x6@*CaI66MSQE^3=jO;uIA+a0wWX7 zi6Mbuhm7P;Le=fPWo%V{y5v^QrBe@XANhejouI)R#S-9$yope6FlyW9Z~OszvVw&q zIuu1WO$xZ86ukAc!ugdvDP|m_I85PJLxKUD?EP86>o()9e~#>MAZBdIn69-L+h}vp zd%B?ReE6=W>6H;tz98|a^@MR5{M)x%p(57>zE!fGzG|yJmL7akY1FW_&slrY>yxA_ z%2sdOsN-sNiNa(b%o6Zx?2r$>Pn~0uv`5~Wjz}P9d?c14&q|-FuBl;I$YTUkZ#1|Vq^=Z=u@4tK!7l2i2SWbtc zg%EfmIf#h?)mt-5biJ;dF2h)S{A42sm_`O`7{cB1>(ZgEbAt@+($#T?=n)#9+FeNRB4N3u9=Lu ztX^eNZ{Ym&2oY5}ygo@#mJ}#p^Bg3F&S`bf z75Rn#r3}lH+4XT0WlacD7ITuKvp?Sb3!WrWt$V%ZLcbHeR6z?{@|LU{4Ylych6j=j0?Q~uVdgb7ccW zXByu4b1d9iG`mE35Eu0CI$3ig#u}go>EJ0Zdq&JL_S?mr4=C3x!%b@3JD6k*GuB#@UDe}d{dOY)m$OKSbV$}U8)@LJ|^jel=NKp z8f9fBVY1j!NUh2BW9z(G`l-Nd5yIlU5>CBWuPS_YQ||rlv#iqgg`Q9k2V2cL#y&JR zRY4`&PhS1VvX{qq83g$&6E)FW^-Nn? zJBXB0{BlOkD4n9oqSmzxq%>!@F#ZGrJ>PG7Ky!k@uaCD-NWsMRicZSXO0>04@NCRO zSpY}j0U6_pib$$`IW>h^F@065#PND@2dhC&Hsvazt-bkqNiB(_%#+25uSL!!9SU!W z)ASIt`PPRC(87*gEFQCrM6-LnvrL%v(N&UtnFzZRH$)XOUmyE&>%YekmFMi!2 zSTi|i(jz$wKeCF}d)XG8*N4jK7M48)92Y;3!ZC$%tKcpTu$Y!Hbp+*cX|nYGGSqe&En=EyPT-nF5+(TbaH^1rp9 zAR)`2BrQ{V(=92bD3IiZc1U`bqd<9~eLtmC1&f>jGjhV2JVs4wN63lMY8*$`v z-wukw48aZgieYoCdE5CoI1CNzkLQ|KHNvnQx^17XZinD#B(0GVgu{nSvd^z+OgTy6 zZE|DGi%hYajVXc=G)&Z+Lp=&^FA5k?0{RuZX!T$5!iJq*4&MRJz0|E|6uL>(EF|G^ z(*?`cu}}2l(kOc2r2@UekH?}{s)o@G^aOo5TENC*p8hrrL5`M0WT9XA=``pz&cDG# zH!;XxlbjSbaFyrM;hyv(G*D4;aZa!?=5xTIHtq{KWn(aKmp8;y8>5w_c74B-Pn&Sl zKtU;paA_MyIcbxL;mRZdyY(pociV`_0J^%+8L+cN=%Z}jmd8+BLPFm~KN;6=@!n2c zb8=9YJk&m>3EGyK7IfyG=$*3=nD4B$vkoq5DxxR3(5`B5pUG7rv<=>Xvlecp<~_P> z4{1jq3TwKwP-?5bf6mEdEj)|2J-x!kiC>%79hjo=3ou`2ds+St!E3|GWi~^A3|B6c zk{q=K?1L!c!>tCs;2ugN<-@yC_Sde-8h$y-s++^t5a* z(TiP#9Yh?&#OzUS!gqXi%yF*H|(0kRBr2C zuzB*zLU(bde(B1DlnPxZA9iloeaeAe_sgwND!*STOpWi?Yf9`wQ|iJZ6? zMXTbpFU_i?m!O658 zqZKl4%#eqi_Kx|LrevJtW^^YMrzON1{?1@ch1UnCkv%f7`$g5gjCRp%{)VBtoT3Jc zw@S`JD&jk{-mlBqmaJ8JRcs@1`kPZ>kDHT%htLuq zIBN58N6)#CTBaK^h%F~7+BP(^v+uoSxik7W$jn5;``k8up&%Jx0KoHSKqebu$* zbhS}_ zf0?+)MppD$c;WrWT%B1~>cE?Qm%1`3sSg6~5$@Yh#6LO;CSnuzegTO|^Utm=Ilwj& zqex77C$G%X3|h+svts4eQ&qYd9c&avijReyHGIsc)bhzGs2;1=X!Oav>G5=WwKhq~ z#D1}@LW&qU=QLQ~Up9|S9Vw@&6V-uoJI-|EXaG5wrUl-;{>nkbN&QI1ojaQ~Z_(?e z&X7||B!x{HeD6q4U9%KYJ_(&JFKx-z%vLTcQjgCvx-h;m01vRxeqB*{XN-+Yl+C#; z)8kmLx@XD!v|lV4BS6^X(6!g_>^a3PTo20v`8{S0;X{4_G!ON9qSnAoy2LnZ(fLx4 zTdpRgKfI6SZHfK;vu)*_ll`7;<#s>iN`H{`{Jvx&#SPmDW|D0P)`A>MzV3t7q_qc5 z0yvgdniVZGc8)nL)3X{HNG0ZQ?0SwQk4Wfy+!tX*beke0Y=-Z&_%>Y>ItzyIf}mp+ z4(thGQ;;c(W(5ZpM|i6Ih^c1ybglq&u#kRmjyE402I;x6#u<#E|Ft?V z?ENOlTY4F6z(_2dqtK&QPb#$%;iTIY{zzG=3-@x#w-V*5R2e@V!LSe+LbyT%FVl-t z(`~Z$oJ(h32w#KSnir;d(cZ%-<%u=%n&j&j zNlru2*}#hV1h46DQp}D6I+dduJ&e5AD$hoOLvv4v);+r6SHz6*2Un^e~8m#US=B2 z*?swON_(E6PLiH~Ivnbp7p?T{UDWA^A_se#a7zv3-L$2*3a@M(8=Drj>R!eV2o~9l zrRBuNjWun{Ym)jEWkj~EMU2+7a%qfe#rKmCFTdh`K^N#iutNAUdC%R8Hcle2@6GTK zQ};S_kOwTAx&D~kjc_fj)x#>?HC|(x_!t0&;0|k0Y!27gMP1(kypK|0Q#@peru4kk zO3ct;Q0&38gOaY%9i6crqDGGfX}zo!6+yN+=_=av2eag4;VVe4`k*P|1p?0Z*27*8 zJcNVSbd$B*KvPeX1JpS*1o&bd)moJH;K~z36gQTs_cPhV#oKnSM?E~%Ya&ilzj?hzV5ny$T8d~hq$$#w6*<1v zFnu32wT}pdKtYSaFC9<1`ZTKoKFZRmstbr`nI)x$f>(87`C>wvOd>oQiGfKJRZPmm`&&zUzMLBgWqAy3Rin z$sziT+egn$CdC0gE~_%=QC<`wZdkH5DlQg?3$G4v<_!(L#pw-c47${dSC0>qfn256 zGlC0+^)$nE1T||P7fP|J48|ufh3gnbOjbdr@{~-915^8IvtWI(v?Ayf9LH-D6nv|1 z^)6@$6GvQd%zLT_dFMwa)j|9tC_=%lv~x%AFmv8Sj|cTE)`RyO@YcwbYA?rrhCVGV zo{aOP+kEM$suIyF`r}*g5ch#R@zLl{8&J4TeV&c7#{Q_&po`kt`BW&3iotS?gh?z# z0`8(kO6$Yp!Br}8aG3ByrZ|?PD}PUaFfG+T;bMsTNmY$nJ^O(T;Yo8H-5gbVqo8xC z`K31g>nodGP~v2%l6J^2O8hIwtb>nC$7KBvv74}S$jPgx?dm{0x_r|kubv<`OHIxX zhxLDbiEF;dV5(WAVE=}18Yy_Sr;A#gBlr&Br?8mZ$Ld)(5$>=#-IAZDlY8F65~0z} zg%h}LIyl$;TK)q>&%Up?S^ei>==90+0+^@GS3m8F{njmivrlK|>nBSt6stodIdOwz zF&zc$=7e&qz$PX-DCslu5CFj=_7-}k^X7r(gpaWNasz|dD`;*Zl-X>zpoOX3)^Q$Y zlseg{`SFFESmEydwFtIpXj{S7bUJ33g$YmKa&J_Z$_+v}rLE0Kk#H=y&`Xne_wrC4 z1W2h(giC-;*;ACVc;}HJ9wdx78QT&kS1L-+W{OzVoIK5KZ)!#QzNjA;Cw-&OQy}St zCO@(z2`>+&Y_q;zeme77H9poq7B@;-fNr6ZHs@+mXMbFBTk#8A;*q@YSDvWNf~CA% zJ;7@&9cRz7{_vhS>?odms{Zu^)Qs7m-V;)0EH4$Srfeu_PC=VP)~u@> zruyDSV?dQUG+Fe$g45#}S48nE77`0%KD!GksDa50{v80NQcbtfBAM1Ft)7IsGHAyt zf!|cRxwyAQmTpPT|Hvi zE_Zv}l%y{}Gq|=2WrTS|ax?m?Z)-M=-8CFn>4l189=Ss!ffhd96Jk>Uw(KYWJJaT<(La8&?M+}v~)ov7BPE-3F-tea4Ne6;xkH{ zA_(#Gw^LFhTRd!TXa(76RMite%IbmX0<7%Bv)snqDdE$bruu1F>FmX83T=Pr*yMaI9~_^{;=UzTk}^368W`! zluwH7P&f9R!+Uylm|pzK&?z?ea_~g1w{uWxRV%CL)S)|I-OfG3Vz|i&zuK9pg+)h> zVOCgAfkb*U*^DcSx+YH{9QouZbi+Wn-?}Jf70g-$M7|YPnv>q!T^#B@pgrlm48+iOxJTD$t! z$Wvgzhe+M7y1dQ{PWfb^*DEoMH8nEILKCq2SdSc3jRdA|_M0kUCh@cfr~vcP+U z$R*>rmG|ol_nQeS#h;VAFimpw+=MIm+6p4I{n^Ls(Cz%y@Ik*k?bSoSPid+YG-Fu0 zkoPh+fdUGf6>shUAS=vurHe$G2@2Ve*&C)Rhh^#FZvl#P4IuZ!2|-&18ZvnXISAk( z$3exy%=S-B#G;``{_$P#YWfR`*A_SxUCOAj_~^06zwP8a+f^__K7YA@r} z#-Ax-PbuGu_6s#8F(NzuiJU&fo#Mr$n05fSMt)3(2PtFSVkiovxZj-V(Z5;SxTihk z`{_dG@N2z$8Y@FuZdZCl>hRfD(> zv?;wW$XSuLJQ^n&yZU+_f%W!v9!}6z@vA*QCAa0RvpYa}O+#s?btDZ!>hr)`gwP^u z!URjb*`Z1=bBoROt17_**){B-8wFn8Vg&B%sAjWfx~!KpYN8l0b{edta4D$0 zy3oKdT-9>npPg)$n|CdZ{7pqX%ufZLO>~#+mku^82Z@cubSZlVIM#>t zl{56I-Onkdjgd$dKDWeXwuewikb8s-dym#%i|tbUoFPk?#_tr+q-$iRSzO7V{~W0? zb=Vv4r&W6g;9W};QD9CIpEw4Yn6GB_%pn~)7ubsvJmjC7z5_Uje))Vpw)n#PzQz*w z4WgjCxb1A&!bH?n#<`6f&LtPLx(jUhQR$y4se&$6zZ!d#g zwkfs&E(~n%6n{lwe!qm|7Q6E0WE{6b4}hz1I*u=0;G|#BRG<07p}S7;ElQ?qL!2Bm zyz05+3Nyi2_`!Iy>JWK8o`5)Jllr`Xy^zh`=~>xT)m2TOa3QMH!2xl5BCOMVvv~0b zsG$-3kW~*|m!0Dl>mGa9uU{P4>8l5v#X=sw+_{&7BLV2tv^7@fx~x}L=sN7brQp*@ zU`CZHcIfz{J$hVk;4A<=@mLk;d~YXDJ1mYm=+(ZONnzd+z>Qo2I2*^UF;0y2f6s5S z7NL15K05&Oo#4x{6v481PVJhgJky0sz@<>{92$DR_ca&~uK~jjKTHwuBxUqFOiqo5 zUOGcbQ!HF%-mKZeARjFqvi5=9Lfgd(-VkvjJIm@fp=}`4xq7Lbv|1G_HQ)>uVd}r_ zd|@LVAi+=*e7YAN0Kv<{#xRiA|KeH~B7|jRGHT` zU8A)mCOy4VAcZBRv`yL=^&D@3*4a2=jl2#Ex!DOwyx%>Siq|FdfB_5`Cl9vBJ77Fb z;G7u!!8-saF_0zxBJl1>jjuS;9RTO~(t+@G%*<&&<@fF-nP$t8*fIqw>nZwN9dC1# z&UR}3Jsf2^N{O6HuPgn??#p#?-+kA1ka@+^RQ*ucS&yXXn@qj|ZaJg?S%1RZc~r0t z_~CRW@NAsiz1GH+A$>iHtl3%mFhLfpDxXtctAMp?i!%^FsEXEutB?Eb6Yp2?alz;y zA!m5}FC@o@}y+lo9Yie@*VdxK!140$An)4duHPH;04W~ciu*aTM z*WrvU3*LIb6IvCKtgs{Aj0FFC_;#zTSEKp4nN;}PXAAtly`uNL7XB9XTNxR-;D^WX z9--1TY;bygl%T+p`lY6@e=L-)?`C`&T6F*MB7h zM`o(x^WNVaq%-ut|4{-wj?VYFB2@l#@hgYW`=s2Du>4BIzXyZf6DhoT@y7z0ZaQ7` zz5>mi#7#Ev;8sXf>-QHzc50#mSBk*o^G}9*c6jx~pUYU|N|8yT+NFNHd$T*HJo=&} z2G}o-!Y=z9KlC=#9v}q9aQ^G#R$x zrgdFGJzfF+_uKg*_6d|olOF}~rDI^^R3Y9Zh_Sv~F07mPimH8^q#&;T({R@3gEqs1 zQ;ltij_zPVM>)tpive>tDU_yq{ZI3sc%$Jf$qs?EK*at+Jj)0FZu&0>4e1Q+$1l z8wEj;Vj6qDEfgUOB9_IJ-60QN8vr|km@Q@b-ZAimc(`BBl3~nSVWevF&-8MDgdPRN zqjm^)=;XRycJShH>ieI|*=-;mnBZ+>vPkDUxfKX3Ru_}I)UE(k%J@|cgqA=Qft>yr zG44OrNh~?WL6Cg=4+28{MHCirkYIR`slb@&Ccz_n8gBIM|NY0ke-cTt&kho}5oOL3 znj~`T0P;F31YZXuZq@Ahko^diYJ{7gqGN3iCzcU ' + Markup._safeHtml(ach[nameCol]) + ''; } - return '(' + LANG.types[10][0] + ' #' + id + ')'; + return '' + (tempname ? tempname : ('(' + LANG.types[10][0] + ' #' + l + ')')) + ''; }, toText: function(attr) { @@ -340,10 +345,10 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - icon: { req: false, valid: /^false$/i }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + icon: { req: false, valid: /^false$/i }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -436,11 +441,11 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - amount: { req: false, valid: /^[0-9\:]+$/ }, - icon: { req: false, valid: /^false$/i }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + amount: { req: false, valid: /^[0-9\:]+$/ }, + icon: { req: false, valid: /^false$/i }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, allowedClass: MARKUP_CLASS_STAFF, validate: function(attr) @@ -532,12 +537,13 @@ var Markup = { itrim: true, attr: { - clear: { req: false, valid: /^(left|right|both)$/i }, + clear: { req: false, valid: /^(left|right|both)$/i }, unnamed: { req: false, valid: /^hidden$/i }, 'float': { req: false, valid: /^(left|right)$/i }, - align: { req: false, valid: /^(left|right|center)$/i }, - margin: { req: false, valid: /^\d+(px|em|\%)$/ }, - width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } + align: { req: false, valid: /^(left|right|center)$/i }, + margin: { req: false, valid: /^\d+(px|em|\%)$/ }, + style: { req: false, valid: /^[^"<>]+$/ }, + width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } }, allowedClass: MARKUP_CLASS_STAFF, toHtml: function(attr) @@ -552,21 +558,14 @@ var Markup = { styles.push('display: none'); if(attr.width) styles.push('width: ' + attr.width); - if(attr['float']) - { - styles.push('float: ' + attr['float']); - if(attr.margin === undefined) - { - if(attr['float'] == 'left') - styles.push('margin: 0 10px 10px 0'); - else - styles.push('margin: 0 0 10px 10px'); - } - } + if (attr['float']) + classes.push('markup-float-' + attr['float']); if(attr.align) styles.push('text-align: ' + attr.align); if(attr.margin) styles.push('margin: ' + attr.margin); + if(attr.style && Markup.allow >= Markup.CLASS_STAFF) + styles.push(attr.style) if(attr.first) classes.push('first'); if(attr.last) @@ -605,9 +604,9 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -645,9 +644,9 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -685,9 +684,9 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^-?[0-9]+$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^-?[0-9]+$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, allowedClass: MARKUP_CLASS_STAFF, validate: function(attr) @@ -727,9 +726,9 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -809,8 +808,9 @@ var Markup = { attr: { unnamed: { req: false, valid: /^first$/i }, - clear: { req: false, valid: /^(true|both|left|right)$/i }, - toc: { req: false, valid: /^false$/i } + clear: { req: false, valid: /^(true|both|left|right)$/i }, + style: { req: false, valid: /^[^"<>]+$/ }, + toc: { req: false, valid: /^false$/i } }, toHtml: function(attr) { @@ -824,13 +824,18 @@ var Markup = { classes.push('last'); if(classes.length > 0) str += ' class="' + classes.join(' ') + '"'; + var styles = []; if(attr.clear) { if(attr.clear == 'true' || attr.clear == 'both') - str += ' style="clear: both"'; + styles.push('clear: both'); else - str += ' style="clear: ' + attr.clear + '"'; + styles.push('clear: ' + attr.clear); } + if(attr.style && Markup.allow >= Markup.CLASS_STAFF) + styles.push(attr.style); + if(styles.length) + str += ' styles="' + styles.join(';') + '"'; return [str + '>', '']; }, fromHtml: function(str) @@ -848,7 +853,8 @@ var Markup = { attr: { unnamed: { req: false, valid: /^first$/i }, - toc: { req: false, valid: /^false$/i } + style: { req: false, valid: /^[^"<>]+$/ }, + toc: { req: false, valid: /^false$/i } }, allowedClass: MARKUP_CLASS_STAFF, toHtml: function(attr) @@ -863,6 +869,11 @@ var Markup = { classes.push('last'); if(classes.length > 0) str += ' class="' + classes.join(' ') + '"'; + var styles = []; + if(attr.style && Markup.allow >= Markup.CLASS_STAFF) + styles.push(attr.style); + if(styles.length) + str += ' styles="' + styles.join(';') + '"'; return [str + '>', '']; }, fromHtml: function(str) @@ -901,13 +912,13 @@ var Markup = { itrim: true, attr: { - align: { req: false, valid: /^right$/i }, + align: { req: false, valid: /^right$/i }, 'float': { req: false, valid: /^(left|right)$/i }, - name: { req: false, valid: /\S+/ }, - size: { req: false, valid: /^(tiny|small|medium|large)$/ }, + name: { req: false, valid: /\S+/ }, + size: { req: false, valid: /^(tiny|small|medium|large)$/ }, unnamed: { req: false, valid: /^class$/i }, - url: { req: false, valid: /\S+/ }, - preset: { req: false, valid: /\S+/ } + url: { req: false, valid: /\S+/ }, + preset : { req: false, valid: /\S+/ } }, allowedClass: MARKUP_CLASS_STAFF, presets: { @@ -1022,16 +1033,17 @@ var Markup = { empty: true, attr: { - src: { req: false, valid: /\S+/ }, - icon: { req: false, valid: /\S+/ }, - id: { req: false, valid: /^[0-9]+$/ }, - blog: { req: false, valid: /^[0-9]+$/ }, - size: { req: false, valid: /^(thumb|resized|normal|large|medium|small|tiny)$/i }, - width: { req: false, valid: /^[0-9]+$/ }, - height: { req: false, valid: /^[0-9]+$/ }, + src: { req: false, valid: /\S+/ }, + icon: { req: false, valid: /\S+/ }, + id: { req: false, valid: /^[0-9]+$/ }, + blog: { req: false, valid: /^[0-9]+$/ }, + size: { req: false, valid: /^(thumb|resized|normal|large|medium|small|tiny)$/i }, + width: { req: false, valid: /^[0-9]+$/ }, + height: { req: false, valid: /^[0-9]+$/ }, 'float': { req: false, valid: /^(left|right|center)$/i }, - border: { req: false, valid: /^[0-9]+$/ }, - margin: { req: false, valid: /^[0-9]+$/ } + border: { req: false, valid: /^[0-9]+$/ }, + shadow: { req: false, valid: /^(true|false)$/ }, + margin: { req: false, valid: /^[0-9]+$/ } }, blogSize: /^(thumb|normal)$/i, idSize: /^(thumb|resized|normal)$/i, @@ -1052,6 +1064,8 @@ var Markup = { toHtml: function(attr) { var str = ''; return str; } - return '(' + LANG.types[3][0] + ' #' + id + ')'; + return '' + (tempname ? tempname : ('(' + LANG.types[3][0] + ' #' + c + ')')) + ''; }, toText: function(attr) { @@ -1198,8 +1234,8 @@ var Markup = { attr: { unnamed: { req: true, valid: /^-?[0-9]+$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -1237,6 +1273,11 @@ var Markup = { empty: false, itrim: true, allowedParents: { ul: 1, ol: 1 }, + attr: + { + "class": { req: false, valid: /^[a-z0-9 _-]+$/i }, + style: { req: false, valid: /^[^<>]+$/ } + }, helpText: function() { var str = ''; @@ -1274,10 +1315,10 @@ var Markup = { allowedClass: MARKUP_CLASS_STAFF, attr: { - unnamed: { req: true, valid: /^(map|model|screenshot)$/ }, - zone: { req: false, valid: /^-?[0-9]+[a-z]?$/i }, - floor: { req: false, valid: /^[0-9]+$/ }, - pins: { req: false, valid: /^[0-9]+$/ } + unnamed: { req: true, valid: /^(map|model|screenshot)$/ }, + zone: { req: false, valid: /^-?[0-9]+[a-z]?$/i }, + floor: { req: false, valid: /^[0-9]+$/ }, + pins: { req: false, valid: /^[0-9]+$/ } }, validate: function(attr) { @@ -1322,7 +1363,7 @@ var Markup = { empty: false, attr: { - zone: { req: true, valid: /^-?[0-9a-z\-_]+$/i }, + zone: { req: true, valid: /^-?[0-9a-z\-_]+$/i }, source: { req: false, valid: /\S+/ } }, allowedClass: MARKUP_CLASS_STAFF, @@ -1355,10 +1396,10 @@ var Markup = { empty: false, attr: { - url: { req: false, valid: /\S+/ }, + url: { req: false, valid: /\S+/ }, type: { req: false, valid: /^[0-9]+$/ }, - x: { req: true, valid: /^[0-9]{1,2}(\.[0-9])?$/ }, - y: { req: true, valid: /^[0-9]{1,2}(\.[0-9])?$/ }, + x: { req: true, valid: /^[0-9]{1,2}(\.[0-9])?$/ }, + y: { req: true, valid: /^[0-9]{1,2}(\.[0-9])?$/ }, path: { req: false, valid: /^([0-9]{1,2}(\.[0-9])?[,:]?)+$/ } }, taglessSkip: true, @@ -1399,7 +1440,7 @@ var Markup = { empty: true, attr: { - tag: { req: false, valid: /[a-z0-9]+/i }, + tag: { req: false, valid: /[a-z0-9]+/i }, help: { req: false, valid: /^(admin|staff|premium|user|pending)$/ } }, allowedClass: MARKUP_CLASS_STAFF, @@ -1440,7 +1481,7 @@ var Markup = { rtrim: true, attr: { - tab: { req: true, valid: /^[0-9]+$/ }, + tab: { req: true, valid: /^[0-9]+$/ }, path: { req: true, valid: /\S+/ } }, allowedClass: MARKUP_CLASS_STAFF, @@ -1474,37 +1515,56 @@ var Markup = { empty: false, attr: { - item: { req: false, valid: /^[0-9]+$/ }, - object: { req: false, valid: /^[0-9]+$/ }, - npc: { req: false, valid: /^[0-9]+$/ }, - itemset: { req: false, valid: /^[0-9,]+$/ }, - slot: { req: false, valid: /^[0-9]+$/ }, + item: { req: false, valid: /^[0-9]+$/ }, + object: { req: false, valid: /^[0-9]+$/ }, + npc: { req: false, valid: /^[0-9]+$/ }, + itemset: { req: false, valid: /^[0-9,]+$/ }, + slot: { req: false, valid: /^[0-9]+$/ }, humanoid: { req: false, valid: /^1$/ }, - 'float': { req: false, valid: /^(left|right)$/i }, - img: { req: false, valid: /\S+/ }, - link: { req: false, valid: /\S+/ }, - label: { req: false, valid: /[\S ]+/ } + 'float': { req: false, valid: /^(left|right)$/i }, + border: { req: false, valid: /^[0-9]+$/ }, + shadow: { req: false, valid: /^(true|false)$/ }, + img: { req: false, valid: /\S+/ }, + link: { req: false, valid: /\S+/ }, + label: { req: false, valid: /[\S ]+/ } }, allowedClass: MARKUP_CLASS_STAFF, skipSlots: { 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1, 10: 1, 16: 1, 19: 1, 20: 1 }, toHtml: function(attr) { var str = ''; + var classes = []; + var styles = []; + + if(attr['float']) + classes.push('markup-float-' + attr['float']); + if(attr.border) + { + if(attr.border == 0) + classes.push('no-border'); + else + { + classes.push('border'); + styles.push('border-width:' + attr.border + 'px'); + } + } + else + { + classes.push('content-image'); + if(attr.shadow == 'true') + classes.push('content-image-shadowed'); + } if(attr.npc) { str = '' + Markup._safeHtml(attr._contents) + '' + Markup._safeHtml(attr._contents) + '' + Markup._safeHtml(attr._contents) + '([\s\S]*?)<\/small>/gi, '[small]$1[/small]'); } }, - sound: { + sound: + { empty: true, attr: { @@ -2386,8 +2462,10 @@ var Markup = { empty: false, attr: { - unnamed: { req: false, valid: /^(hidden|invisible)$/ }, - tooltip: { req: false, valid: /\S+/ }, + "class": { req: false, valid: /^[a-z0-9 _-]+$/i }, + style: { req: false, valid: /^[^<>]+$/ }, + unnamed: { req: false, valid: /^(hidden|invisible)$/ }, + tooltip: { req: false, valid: /\S+/ }, tooltip2: { req: false, valid: /\S+/ } }, allowedClass: MARKUP_CLASS_STAFF, @@ -2417,12 +2495,13 @@ var Markup = { allowInReplies: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - diff: { req: false, valid: /^[0-9]+$/ }, - icon: { req: false, valid: /^false$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - buff: { req: false, valid: /^true$/ }, + unnamed: { req: true, valid: /^[0-9]+$/ }, + diff: { req: false, valid: /^[0-9]+$/ }, + icon: { req: false, valid: /^false$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + buff: { req: false, valid: /^true$/ }, + tempname: { req: false } }, validate: function(attr) { @@ -2437,11 +2516,14 @@ var Markup = { var url = domainInfo[0]; var nameCol = domainInfo[1]; var rel = []; + var tempname = null; if(attr.buff) rel.push('buff'); if(attr.diff) rel.push('diff=' + attr.diff); + if(attr.tempname) + tempname = attr.tempname; if(g_spells[id] && g_spells[id][nameCol]) { @@ -2449,7 +2531,7 @@ var Markup = { return ' ' + Markup._safeHtml(spell[nameCol]) + ''; } - return '(' + LANG.types[6][0] + ' #' + id + ')'; + return '' + (tempname ? tempname : ('(' + LANG.types[6][0] + ' #' + f + ')')) + ''; }, toText: function(attr) { @@ -2479,10 +2561,10 @@ var Markup = { empty: true, attr: { - unnamed: { req: true, valid: /^[0-9]+$/ }, - icon: { req: false, valid: /^false$/ }, - domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, - site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } + unnamed: { req: true, valid: /^[0-9]+$/ }, + icon: { req: false, valid: /^false$/ }, + domain: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ }, + site: { req: false, valid: /^(beta|mop|ptr|www|de|es|fr|ru|pt)$/ } }, validate: function(attr) { @@ -2564,8 +2646,9 @@ var Markup = { itrim: true, allowedClass: MARKUP_CLASS_STAFF, allowedChildren: { tab: 1 }, - attr: { - name: { req: true, valid: /\S+/ }, + attr: + { + name: { req: true, valid: /\S+/ }, width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } }, toHtml: function(attr) { @@ -2606,7 +2689,8 @@ var Markup = { itrim: true, allowedClass: MARKUP_CLASS_STAFF, allowedParents: { tabs: 1 }, - attr: { + attr: + { name: { req:true, valid: /[\S ]+/ }, icon: { req:false, valid: /\S+/ } }, @@ -2629,10 +2713,10 @@ var Markup = { allowedChildren: { tr: 1 }, attr: { - border: { req: false, valid: /^[0-9]+$/ }, + border: { req: false, valid: /^[0-9]+$/ }, cellspacing: { req: false, valid: /^[0-9]+$/ }, cellpadding: { req: false, valid: /^[0-9]+$/ }, - width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } + width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } }, toHtml: function(attr) { @@ -2703,11 +2787,11 @@ var Markup = { attr: { unnamed: { req: false, valid: /^header$/ }, - align: { req: false, valid: /^(right|left|center|justify)$/i }, - valign: { req: false, valid: /^(top|middle|bottom|baseline)$/i }, + align: { req: false, valid: /^(right|left|center|justify)$/i }, + valign: { req: false, valid: /^(top|middle|bottom|baseline)$/i }, colspan: { req: false, valid: /^[0-9]+$/ }, rowspan: { req: false, valid: /^[0-9]+$/ }, - width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } + width: { req: false, valid: /^[0-9]+(px|em|\%)$/ } }, toHtml: function(attr) { @@ -2756,8 +2840,8 @@ var Markup = { count: 0, attr: { - until: { req: false, valid: /^\d+$/ }, - since: { req: false, valid: /^\d+$/ }, + until: { req: false, valid: /^\d+$/ }, + since: { req: false, valid: /^\d+$/ }, server: { req: false, valid: /^true$/ } }, validate: function(attr) @@ -2889,9 +2973,9 @@ var Markup = { attr: { unnamed: { req: false, valid: /\S+/ }, - name: { req: false, valid: /\S+/ }, - bare: { req: false, valid: /^true$/i }, - label: { req: false, valid: /[\S ]+/ } + name: { req: false, valid: /\S+/ }, + bare: { req: false, valid: /^true$/i }, + label: { req: false, valid: /[\S ]+/ } }, taglessSkip: true, allowedClass: MARKUP_CLASS_STAFF, @@ -2972,11 +3056,13 @@ var Markup = { helpText: '[url=http://www.google.com]' + LANG.markup_url + '[/url]', attr: { - unnamed: { req: false, valid: /\S+/ }, - rel: { req: false, valid: /(item|quest|spell|achievement|event|npc|object|itemset|currency)=([0-9]+)/ }, - onclick: { req: false, valid: /[\S ]+/ }, - tooltip: { req: false, valid: /\S+/ }, - tooltip2: { req: false, valid: /\S+/ } + unnamed: { req: false, valid: /\S+/ }, + rel: { req: false, valid: /(item|quest|spell|achievement|event|npc|object|itemset|currency)=([0-9]+)/ }, + onclick: { req: false, valid: /[\S ]+/ }, + style: { req: false, valid: /^[^"<>]+$/ }, + tooltip: { req: false, valid: /\S+/ }, + tooltip2: { req: false, valid: /\S+/ }, + newwindow: { req: false, valid: /^true$/ } }, validate: function(attr) { @@ -3007,7 +3093,7 @@ var Markup = { if(Markup._isUrlSafe(target, true)) { var pre = '= Markup.CLASS_STAFF) + pre += ' style="' + attr.style + '"'; pre += '>'; return [pre, '']; } @@ -3055,10 +3143,11 @@ var Markup = { empty: true, attr: { - id: { req: true, valid: /^[0-9]+$/ }, + id: { req: true, valid: /^[0-9]+$/ }, unnamed: { req: false, valid: /^embed$/i }, 'float': { req: false, valid: /^(left|right)$/i }, // Thumbnail only - border: { req: false, valid: /^[0-9]+$/ } // Thumbnail only + shadow: { req: false, valid: /^(true|false)$/ }, // Thumbnail only + border: { req: false, valid: /^[0-9]+$/ } // Thumbnail only }, ltrim: true, rtrim: true, @@ -3068,6 +3157,8 @@ var Markup = { if(g_videos[attr.id]) { var html = '', video = g_videos[attr.id]; + var classes = []; + var styles = []; if(attr.unnamed) { if(video.videoType == 1) // YouTube @@ -3080,16 +3171,29 @@ var Markup = { html += '