From 5e1632788b8a5f5b9eebd2acb72e1de7d9f0ac63 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 15 Oct 2005 20:44:04 +0200 Subject: [PATCH] more unobstrusive javascript The edit form now is free of inline event handlers. There are still other places where inline javascript and even document.write is used which should be fixed as well. Currently the window.onload event is used to initialize everything which may not the best way to do so. Dean Edwards may have a solution: http://dean.edwards.name/weblog/2005/09/busted/ darcs-hash:20051015184404-7ad00-2404744d008e5ea7e1b5800c96800824b532ff47.gz --- inc/html.php | 28 ++----- inc/parser/xhtml.php | 10 +-- inc/template.php | 78 ++++++++++-------- lib/images/toolbar/bold.png | Bin 479 -> 433 bytes lib/images/toolbar/chars.png | Bin 636 -> 594 bytes lib/images/toolbar/h1.png | Bin 429 -> 387 bytes lib/images/toolbar/h2.png | Bin 500 -> 453 bytes lib/images/toolbar/h3.png | Bin 501 -> 464 bytes lib/images/toolbar/h4.png | Bin 461 -> 429 bytes lib/images/toolbar/h5.png | Bin 478 -> 437 bytes lib/images/toolbar/hr.png | Bin 372 -> 329 bytes lib/images/toolbar/image.png | Bin 680 -> 594 bytes lib/images/toolbar/italic.png | Bin 363 -> 322 bytes lib/images/toolbar/link.png | Bin 574 -> 554 bytes lib/images/toolbar/linkextern.png | Bin 1138 -> 962 bytes lib/images/toolbar/mono.png | Bin 426 -> 385 bytes lib/images/toolbar/ol.png | Bin 435 -> 403 bytes lib/images/toolbar/sig.png | Bin 606 -> 569 bytes lib/images/toolbar/smiley.png | Bin 860 -> 730 bytes lib/images/toolbar/spellcheck.png | Bin 738 -> 709 bytes lib/images/toolbar/strike.png | Bin 450 -> 415 bytes lib/images/toolbar/ul.png | Bin 409 -> 383 bytes lib/images/toolbar/underline.png | Bin 405 -> 375 bytes lib/scripts/edit.js | 106 ++++++++++++++++++++++++- lib/scripts/script.js | 126 +----------------------------- lib/scripts/spellcheck.js | 8 +- lib/tpl/default/design.css | 4 + 27 files changed, 172 insertions(+), 188 deletions(-) diff --git a/inc/html.php b/inc/html.php index d03815f00..b559b84bb 100644 --- a/inc/html.php +++ b/inc/html.php @@ -224,7 +224,7 @@ function html_btn($name,$id,$akey,$params,$method='get'){ $params['id'] = $id; } - $ret .= '<form class="button" method="'.$method.'" action="'.$script.'" onsubmit="return svchk()">'; + $ret .= '<form class="button" method="'.$method.'" action="'.$script.'">'; reset($params); while (list($key, $val) = each($params)) { @@ -885,7 +885,7 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? ?> - <form name="editform" method="post" action="<?php echo script()?>" accept-charset="<?php echo $lang['encoding']?>" onsubmit="return svchk()"> + <form name="editform" method="post" action="<?php echo script()?>" accept-charset="<?php echo $lang['encoding']?>"> <input type="hidden" name="id" value="<?php echo $ID?>" /> <input type="hidden" name="rev" value="<?php echo $REV?>" /> <input type="hidden" name="date" value="<?php echo $DATE?>" /> @@ -911,42 +911,26 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? <tr> <td colspan="3"> <div id="spell_result"></div> - <textarea name="wikitext" id="wikitext" <?php echo $ro?> cols="80" rows="10" class="edit" onchange="textChanged = true;" onkeyup="summaryCheck();" tabindex="1"><?php echo "\n".formText($text)?></textarea> + <textarea name="wikitext" id="wikitext" <?php echo $ro?> cols="80" rows="10" class="edit" tabindex="1"><?php echo "\n".formText($text)?></textarea> </td> </tr> <tr id="wikieditbar"> <td> <?php if($wr){?> - <input class="button" type="submit" name="do" value="<?php echo $lang['btn_save']?>" accesskey="s" title="[ALT+S]" onclick="textChanged=false" onkeypress="textChanged=false" tabindex="4" /> - <input class="button" type="submit" name="do" value="<?php echo $lang['btn_preview']?>" accesskey="p" title="[ALT+P]" onclick="textChanged=false" onkeypress="textChanged=false" tabindex="5" /> + <input class="button" id="edbtn_save" type="submit" name="do" value="<?php echo $lang['btn_save']?>" accesskey="s" title="[ALT+S]" tabindex="4" /> + <input class="button" id="edbtn_preview" type="submit" name="do" value="<?php echo $lang['btn_preview']?>" accesskey="p" title="[ALT+P]" tabindex="5" /> <input class="button" type="submit" name="do" value="<?php echo $lang['btn_cancel']?>" tabindex="5" /> <?php } ?> </td> <td> <?php if($wr){ ?> <?php echo $lang['summary']?>: - <input type="text" class="edit" name="summary" id="summary" size="50" onkeyup="summaryCheck();" value="<?php echo formText($SUM)?>" tabindex="2" /> + <input type="text" class="edit" name="summary" id="summary" size="50" value="<?php echo formText($SUM)?>" tabindex="2" /> <?php html_minoredit()?> <?php }?> </td> <td align="right"> <div id="sizectl"></div> - - <script language="javascript" type="text/javascript" charset="utf-8"> - //showSizeCtl(); - <?php if($wr){ ?> - init_locktimer(<?php echo $conf['locktime']-60?>,'<?php echo $lang['willexpire']?>'); - - //initToolbar('toolbar','wikitext',toolbar); - - //initialize spellchecker - <?php if($conf['spellchecker']){ ?> -// ajax_spell.init('<?php echo $lang['spell_start']?>','<?php echo $lang['spell_stop']?>','<?php echo $lang['spell_wait']?>','<?php echo $lang['spell_noerr']?>','<?php echo $lang['spell_nosug']?>','<?php echo $lang['spell_change']?>'); - <?php } ?> - - document.editform.wikitext.focus(); - <?php } ?> - </script> </td> </tr> </table> diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 037bb24d6..73ef58767 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -503,7 +503,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['pre'] = '<span class="curid">'; $link['suf'] = '</span>'; } - $link['more'] = 'onclick="return svchk()" onkeypress="return svchk()"'; + $link['more'] = ''; $link['class'] = $class; $link['url'] = wl($id); $link['name'] = $name; @@ -545,7 +545,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['style'] = ''; $link['pre'] = ''; $link['suf'] = ''; - $link['more'] = 'onclick="return svchk()" onkeypress="return svchk()"'; + $link['more'] = ''; $link['class'] = $class; $link['url'] = $url; $link['name'] = $name; @@ -565,7 +565,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['target'] = $conf['target']['interwiki']; $link['pre'] = ''; $link['suf'] = ''; - $link['more'] = 'onclick="return svchk()" onkeypress="return svchk()"'; + $link['more'] = ''; $link['name'] = $this->_getLinkTitle($name, $wikiUri, $isImage); if ( !$isImage ) { @@ -703,7 +703,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['style'] = ''; $link['pre'] = ''; $link['suf'] = ''; - $link['more'] = 'onclick="return svchk()" onkeypress="return svchk()"'; + $link['more'] = ''; $link['target'] = $conf['target']['media']; $link['title'] = $this->_xmlEntities($src); @@ -746,7 +746,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['style'] = ''; $link['pre'] = ''; $link['suf'] = ''; - $link['more'] = 'onclick="return svchk()" onkeypress="return svchk()"'; + $link['more'] = ''; $link['target'] = $conf['target']['media']; $link['title'] = $this->_xmlEntities($src); diff --git a/inc/template.php b/inc/template.php index 8c84515c2..9d0d3ef9a 100644 --- a/inc/template.php +++ b/inc/template.php @@ -225,42 +225,55 @@ function tpl_metaheaders(){ ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. DOKU_BASE.'lib/scripts/domTT.js"></script>',$it); - // add size control - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - ptln("addEvent(window,'onload',function(){initSizeCtl('sizectl','wikitext')});",$it+2); - ptln('</script>',$it); // editing functions - if(($ACT=='edit' || $ACT=='preview') && $INFO['writable']){ - // load toolbar functions - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/edit.js"></script>',$it); + if($ACT=='edit' || $ACT=='preview'){ + // add size control + ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); + ptln("addEvent(window,'onload',function(){initSizeCtl('sizectl','wikitext')});",$it+2); + ptln('</script>',$it); - // load spellchecker functions if wanted - if($conf['spellchecker']){ + if($INFO['writable']){ + // load toolbar functions ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/spellcheck.js"></script>',$it+2); - } + DOKU_BASE.'lib/scripts/edit.js"></script>',$it); - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - - // add toolbar - require_once(DOKU_INC.'inc/toolbar.php'); - toolbar_JSdefines('toolbar'); - ptln("addEvent(window,'onload',function(){initToolbar('toolbar','wikitext',toolbar);});",$it+2); - - // add spellchecker - if($conf['spellchecker']){ - //init here - ptln("addEvent(window,'onload',function(){ ajax_spell.init('".$lang['spell_start']."','". - $lang['spell_stop']."','". - $lang['spell_wait']."','". - $lang['spell_noerr']."','". - $lang['spell_nosug']."','". - $lang['spell_change']."'); });"); + // load spellchecker functions if wanted + if($conf['spellchecker']){ + ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. + DOKU_BASE.'lib/scripts/spellcheck.js"></script>',$it+2); + } + + ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); + + // add toolbar + require_once(DOKU_INC.'inc/toolbar.php'); + toolbar_JSdefines('toolbar'); + ptln("addEvent(window,'onload',function(){initToolbar('toolbar','wikitext',toolbar);});",$it+2); + + // add pageleave check + ptln("addEvent(window,'onload',function(){initChangeCheck('". + str_replace('\\\\n','\\n',addslashes($lang['notsavedyet']))."');});",$it); + + // add lock timer + ptln("addEvent(window,'onload',function(){init_locktimer(". + ($conf['locktime']-60).",'". + str_replace('\\\\n','\\n',addslashes($lang['willexpire']))."');});",$it); + + // add spellchecker + if($conf['spellchecker']){ + //init here + ptln("addEvent(window,'onload',function(){ ajax_spell.init('". + $lang['spell_start']."','". + $lang['spell_stop']."','". + $lang['spell_wait']."','". + $lang['spell_noerr']."','". + $lang['spell_nosug']."','". + $lang['spell_change']."'); });"); + } + ptln('</script>',$it); } - ptln('</script>',$it); } // plugin stylesheets and Scripts @@ -270,13 +283,12 @@ function tpl_metaheaders(){ /** * Print a link * - * Just builds a link but adds additional JavaScript needed for - * the unsaved data check needed in the edit form. + * Just builds a link. * * @author Andreas Gohr <andi@splitbrain.org> */ function tpl_link($url,$name,$more=''){ - print '<a href="'.$url.'" onclick="return svchk()" onkeypress="return svchk()"'; + print '<a href="'.$url.'" '; if ($more) print ' '.$more; print ">$name</a>"; } @@ -522,7 +534,7 @@ function tpl_searchform(){ global $lang; global $ACT; - print '<form action="'.wl().'" accept-charset="utf-8" class="search" name="search" onsubmit="return svchk()">'; + print '<form action="'.wl().'" accept-charset="utf-8" class="search" name="search">'; print '<input type="hidden" name="do" value="search" />'; print '<input type="text" '; diff --git a/lib/images/toolbar/bold.png b/lib/images/toolbar/bold.png index 6ec336262a9e6487182ff12d66f8c1419348472a..7ebe99ee926f1bd73fac1200598de09ecdd87a12 100644 GIT binary patch delta 407 zcmV;I0cif;1F-{;B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^Ib!;!yZ`_JK1oDDR5;7k(;;pGQ4j{;VQE58<p79v*zEyGxB#@h z!S)0#4%gt2ZGu8=J%R*>X)US<4zLPIUP#z^|Ga@$!;-B4ntz}=?oD34{F%v=y!UiX z1$1Ry4crtTy<RUSqUYUi7pbao&b^69<eX~(n21PsJRX~q2?m2fqN<bac1t3%7!HU1 z(P;E&t(`dMVrKq4n}CQ&L`YR>zuzBw%$$1fiJ7B60XafM)ai6;0OA9bTm%5*NZ4+- zUjaOL@59Yz^M5s;&z~-C!CFfqLd={_r_=syHoG&%Bta0g8jZ$x7>2d805j)6vDaO% z*Ho!gB5Q4Y5diQDST2_)%Q8|`0&shF2Fy(5a+#R<7`0xnzf`MLTCG;bIrmZgUn<^0 zv)PQTwf6vO00_Y1FwjUu7OMK5Wm$R>_@Br01OEQx4-kI1SiJxM002ovPDHLkV1k@X BvW5Tv delta 453 zcmV;$0XqJ%1K$IXB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0004TNkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRESg3PI?s7L@( z`G5cZHTd)A&xhZ?e^2=J>z4tLcKG@8=LR6VaLt-EACUC`1b+~U3pzSF763JF`1<uL z15ojWDO092&YCqV@W+oI8-Ru+eE<G^Ke`J50*D1&0H~1xXb8i<fB)cOK#dPTfeoY$ z(A5J35LN?VhJb*dpPvBG`3X>i7NDyK2p|jtfQn&;DERvN)&uzgK-(2Qefo6Z<jIqX z=;{Fi2qPAN{(l7<0CM)`&6^u{?b>Dd;lqaoOiWA;>gwv}6%-T%kktbO5QYIjjW7d{ z#R}iOd&j`e&Tas-AOTrDKmcJi0OSp11Fl@T^5NUJZ{TnN%JCzs2M8b*Yz8nhGlOWj zQ)Ogi3OG4A8J<0R21*+Xk<|kP5F>J4u(h>K06NhhXg&)l<UzJwfCi`mC|v+uFcIjI v2gn8h1P~*onF%0(D9#H20YtF@009O7{{G|-SI?i100000NkvXXu0mjf^aQrC diff --git a/lib/images/toolbar/chars.png b/lib/images/toolbar/chars.png index 83cdadd755809565ff66f5b2fef3172eb39903e1..10f9107c02a67b76fb3eb65f7be6ddea64c84cc6 100644 GIT binary patch delta 569 zcmV-90>=IP1kwbMB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($_2@7HY*8l(k-$_J4R5;7UlQB#aVHC&zZLiIhws^EQ0SVY*B9Xxq zg~jPuTpX&ChN+8*i!lzyg@`6BOav2LT-uqzF1Q$TmzXesB!7(>QBiuSxIp0UTF&C# z_kGWSV4#<q82l%1dEfj0lK0R1LPUhqD2!7|>TFED*vfUwk?Dbqq_$nM1OZYwr2N?a zqdP6}tonG+I6fabzQW|fR^jT9tO)_Ed~e@cd@!H`z|Gl)I(jkwia25Qvoo>uBwzCZ z?kxON#&hv{LVu1ZZ$Io$EIvFmAL+(ST~$X@+HQ+kYoDC_o0$vNi3|io=}baWHn+W6 zrx^g2rt<oiUk9~xGNLe7lzbufrK3e6!nejjH7Kz9X1mG-kj}=6J^<qcP5@^-FmdJq zTpX4Uuw#1$h|rai3PFHWccc&k!QOQZA7J0&73;UaV1G8M1_65eV(Om5(KNk^5Ab?A zuP=XWm3z9viu!1y)M*~Sw_eI5C1v$}tGxDdME3!1KW}JFlg+=YIps?uiMea{zbZ#> zV|Uk;;mgUn<rTYZo8J8OsSV8sIG>HFj8W0vb1OThXY}Uee?$F4vSypiXqs+?3sF4R zA6I>+%rc2Eb|v+ca{}RH(%DS3AOK{}_Glyk5p>G`<v0EX7%SL?e>}DY00000NkvXX Hu0mjf`xOe< delta 611 zcmV-p0-XKQ1pEY$B!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0006GNkl<Zc-mt8|NlP&B>*6Rm>4Jo00G2;E)X^Ci2@%7bG@uE zi^KO{|3CZ#I*^5lQQ+>Yp9j8v{@1vnT<!s~dVm08MD{||)PE-i#!4Lf|NUcNICbZH z;OczY10eB$&PNW0YMkr;|NYN!`r22=t#yhQV0r)o2yQ^c)W-s*3Y_=3IhY0ZUi#v= zx)7on2E1GDJ2)8f?tlCF&xf;DzAEl+QT_lD2M8c|82tOgkigH)B5?23?+fUfL11f* z;(;4ae_RmaVSg6*^Xp#%OdKG9;08zvvHF8tbL-KM4Y&gA{=M%T{sO%xB+BLw69Wh! zxB-8F{sSV0zkmMX4Dmm|f%5+#7zO|W2yVdZkG~%<0A0Yv%VL1b0A4<314f4b3?JYA zg2x0v0KpCT^5O5o58wVV$ceH#;4(l$lFi}W*S`#(-hcmI2onPcAh-eB>J<+hyZm{9 zAQzK>L+R}Vbj_w2*As+!SOiX=`MlulY%O>o0|XG<fbdC=_J4Z+XX4=tUl(X<aray0 z-V}hznWSD9P}k$>KX&Tlf{*WiPjsufy&onA5I}GP<VD#W{`~px|MA_gg|FZLejuU1 z0aqjqOk7+a-~V~=>HV*TfB*gSmy+g$dlMjl;7R!}FaS-AcpLr#qXLw)kV9HjnAHHp x6&4ZP{~yRel41Y|AVx}aBR~LAoErfG3;-A_*oB8fP$K{U002ovPDHLkV1f<x9`pbJ diff --git a/lib/images/toolbar/h1.png b/lib/images/toolbar/h1.png index ffee5c159fb8180920a04249b72fc64b31450cd5..9e4d221c753afe7024267145f8f59a3c65aa514f 100644 GIT binary patch delta 360 zcmV-u0hj)*1A_yQB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@D*s>CBLDya5J^NqR5;7+lQC|CPz;8Ds?NOuVPS&<&@M2MN{lFQ zj;aT!a)9<8QQiqSK)3+u!idBjY`-UWfry4|8M^e}Y(0Pe{eLWbs)~E`fIIc~fJXqR z>v|6$0s!aS(HL_milP>g9W#T7&TZR%#BuyeMBBda-!24Ig{q>es<A9fGsmimG)+yC zB%`V#ilUb=49#Y<8JBM^BRJ<^t^H+>h``JMfUfIK%-j;udISKl)<Q)5JkQ@J+hAsY zS+E4I03rer8DW~H`J8ic96uA0KgY}r5xKnu5n0i%J5Eh*17_PxUFSq(^-rFvBFnNp z5k*tMvFo}+5Ck<5?Izo25&5>(Zk=;a00sbGsycZ8w}2m~=GT8Vwi-<U0000<MNUMn GLSTXyR+r}h delta 403 zcmZo>Uduc|rJg0-(btiIVf_hn)~=Tf3=EPbt`Q}{`DrEPiAAXljw$&`sS2LCiRr09 zsfj6-g(p*O7#JAsJzX3_DsCnH`TyUZS(QPdVTObT3j?FeMn))cgh}bp;lt96Q_MR4 zet&=eYWB4?kuTrAmHqeo`}+&=`|Aw<{Q3F$)yK!j>tC0al-M-ne80UtU;Gdc1BU`z zfI?G2M8u8F4<0-)HL&Bjef#$MjT<&puq9<@XGgDGv0}}{$&;(w*03owJcwhsb>_qK z^YS9k8FP~vb~3Q6i`iMkbHa{K$eE3S@d#6Lg9-Coo!8Hvh4GY{d2H6%#FoOG2z2fP zHU`t?507Jam(_ngbflqf8%x%t){l;}9A8afbYL)4ly1ng+SME29dLz#ML>Ad%NPHg z#hEkR_|+R2l2}@oG&egd2P`xTIh>Wyuy)Gy>HO@QoEM(k$93d-!>qfFjc3`fe3$6> t-B2aZ%p#z?w31PwLBp>TIe6F@mOr~*FC*$4#RCj-22WQ%mvv4FO#oW|r>+11 diff --git a/lib/images/toolbar/h2.png b/lib/images/toolbar/h2.png index a2cc7f253ad4cdc5187d58d9b7654432ad839991..4d3cc51e91b0efea4182576b70f95fc7592f0218 100644 GIT binary patch delta 427 zcmV;c0aX6<1H}W7B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^G#pFY0RR92Qb|NXR5;7!Q!#GBKoA@wH*Qk6qOo`Y?onJ(5k-_C zx)0<9;RQS($_MfRl6wFmJufh6sF0<U2w@@E-CLZ-7h<KPNPm&(b~QVio6!YTRpAn} za3TI)AOrwo%mhFe095tOT00#Mheky1nHfa1Wad{Q8WYhKGrz3Y>lpw9K15^8r>ZWj zwIi?I@Aqw4mKlH^5m_RdF>`h}9J<cA-e$8YLQhszIOiJnhzQ&57Eu&sL^N8hRz<tr z&Y0P%Y69Ra;D4Nhh$Mr-U|ib<Gbd3LA<y%v=P~o6s_sN2|IPpaL<AyI%;)nbzf05f znuroV$8r2z^X`tv<F3(yh=7@YJ;Cql<Bzf|N6xt-2!f;`;BEf|Gh@HsBaY)tL~cdo zCJaNXs_(wFR-N{Qh!)I@G))ZvbUGbFL^z#J3lVt`ktEzX2UP`tWmQ$p8vpTM_yX6m V@1EuJ@kRgu002ovPDHLkV1js;v>E^a delta 474 zcmV<00VV#$1M~xsB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0004oNkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRC+u>k-9!~!D1 z!^0bals1U{_wV1;Yu2n;>Fw<u{`>du&|klPG5q}b^D2;D1%ITAftU}-p7ZeG!yO>? z00G1Z3q+tH&w!eb0X2ufOm}c_So8VwXDcAn9H?;(5bpqLw)+14yY`<yf6U*#d-oV1 zfLLIPftneBf+)@dYGC;A;R6FFC#MyV9di5j?Z*-l5>`M%)&SMZ0+l=l2q3rtAk9E0 z%euL_6+@lP0Dq)qftnevT)DCmrVc1p1l0TqsP+no4-i0b1Aqb`{CL-{UA-_d9UUD@ zph2=QzL1bmKU7`tj~_oify4j;hzZ#Mkj>~`fQdmhUjv3o2+*~U85tSD1_J~T6Oz-w z8jt}<?CaOBAk9`l&7MH)&ceb1^8apFtN{cN6Ew6Nfm51~fiwV}9S#zcmzNI*8Tjwt zzhgj+DIh<C!U+`EKyVcpd*EmU2p~pE^8!EsQJfM10*GP*00M|&0{{XH0N1kbp50|T Q)&Kwi07*qoM6N<$f+Lg0O8@`> diff --git a/lib/images/toolbar/h3.png b/lib/images/toolbar/h3.png index accdaf652d31f49e58c9d1422801c358d5531f63..20419c5a08398142fb0feecebe97b2099bb11b58 100644 GIT binary patch delta 438 zcmV;n0ZIP#1JDDIB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($_58?r&;s5{vT}ebiR5;7!ld)=IVGxDSjR7rWL90tZZ0xR2V09ZM zXq#~Rz&?Qw5b^-~2Kxd@{s-74eS86}tRx^-Lbmwf%>2Wo@qfCxb&4(aR5Q()^UW}s zyW=amz!&xJ4K4wos;UP71pt`Ya|q#au~<~9dMhFzxe<{kl1q}`MC9jgxBCSES-r%n zs`h5~8bY|K-OI8JBqyuY>S{b5zmR+tkqOD-a5!8w5X=lIrA9oG5RtmR+ith_B%efN z(?9@#loC{RFn^oPmZ#VdkpW2nfQTT^^AKa4xciUu6nBTaV?Lknr_*Vudv`}s6k#+P z?d!hR>kYcy?n}Gf-nUw<Yj^*PpsMG%pAlk=$n(7D_xs<E$K#u--kBN9tY{$Au|G>h z5MxA^W!ECI>~uPtl+ycY@vHL{%CdYQS)5Fs*X#A;a4$HlNZyJFRP{|&|D==#X7&!? gx4Spb_#gkm2S_RY3lo4?(EtDd07*qoM6N<$f=6A=`~Uy| delta 475 zcmV<10VMv=1N8%tB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0004pNkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRC+u>k-9!~!D1 z!^0bals1U{_wV1;Yu2n;>Fw<u{`>du&|klPG5q}b^D2;D1%ITAftU}-p7ZeG!yO>? z00G1Z3q+tH&w!eb0X2ufOm}c_SOe5xb^Q2oDIFc1-9Yv+pk^x|t^MM~3n`EqfB=Gf z0jQbb&!0ai&I2lB0J#9lPP%>jc0G_@1r)mqQv(n{EHDO0GtkMhZf<VHP-lZQ%YtYS z0EtORNUZtx?SGpU(AB*#eE<Q(0P+F|dwF?1b9HrH1LK3Rwzl>f6&00dFutImpezp$ z&u(^h_Giq@%pM>yfB=Gf0cbnixyW7s+6b~)TS!PK_1(L7kAdovK;8vnaG(PO5Znte zXCniU7{~xdMn(@HyO@K6<0{arAE5z%97F&F5I7cqp;X-n3R$QjtFK(SvQl1NJ{-sf zM<dWykj<Zfnq`4De+25=3DgIUMt}ffq%<!81Q5k35g>plHUJ=iC^i5fzyL@o{tMQC R6yg8?002ovPDHLkV1gNi#4P{- diff --git a/lib/images/toolbar/h4.png b/lib/images/toolbar/h4.png index 8e57676885b7c73609f18d7007cdf5b7c65115b4..a57c4c8c32bb59c6122e6d15d679e14b43ad3838 100644 GIT binary patch delta 403 zcmV;E0c`%w1FZv)B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@GzC!VKmY&%I!Q!9R5;7+lc7$-U=)SV$VAn|e5Y2`x+*YLTS8`L zXg%Qx-~pCC0D%YK1q!oMn5jJhRZ|Pe^g!*Ndz&BAHY;`l!+&+><o~~%bMyZ_=N!(N z3!FKB59k9xmSs7Bu=d`HqA2F`d8Vp2stS_jdc9r%Komv3h}><r+XVo?IS1z)(lp(t zX}WB*a}JZqWSJz%zR_VA4#wm0`)D+3&vhzPRn>_{5+c%S5qTy#IQ9Ccm(9$d&1MgE zY>0?Y5&#ec!G9CU7ZJH{ybi$3psJs%)#|bF;yAuM91eaE1Xm=lYha|R@H{U+9*>I_ zpsG;SPK72a$qx~^B?(o{RTXCT+DXvF{tYlQ>~_0v02=`CJnzfQU}k0e4yMy-PI4n6 xh~qe`J7@JCHpAgCKdD+)RaG{+_x~6014<s?51}HwVGIBO002ovPDHLkV1gzUty=&9 delta 435 zcmZ3>e3p5FN<B-uqpu?a!}=5EtX(e|7#Ji=Tq8<?^V3So6N^$A98>a>QWZRN6Vp?J zQWH}u3s0unFfcI2d%8G=RNPAX^Z&m+vnqo^!wd-x76wL_jf_y@2$RyG!-u6Cr<jH0 zeDzY`0D}L2f0t_r82|b8_4TVpX7*Q(ldP<)Hr3nL|MS^d``c^=zkmbJ0tc3d8#Zi6 zci6*rj6E?t{JQD4Z{N-*)a2&o+KGxzy<1dNR8Y#m*z%}#fBpYO7W^5;%oofo<WJ0F z5P9q@#>}B0mU6cK-=B$JzkSndvyxuoDCW}KuxeG7{RCTfjW8BrX2u4FCTWH%XBe*h zsCa#C?Oua=!{p@T)BN&wCzwp58BHslc&{)<9yoaL;*ZD2`>VjJg;)|(7>cz5E{iHy zbEX&v_$qtIUN{u0VA;UnWXNzc(}3AQulmP_hw2L7B|LaCKD$ql5Qt~}$jHPY(~*~# z*XwZhxPw%~IllH^mNHU&$6H!jq$cjE5|xMxPpoOsVMtnHqR+r0a8y%Jp+Un87?vR7 a0E3s@1AgP^)|<d6VeoYIb6Mw<&;$V9Z=@ms diff --git a/lib/images/toolbar/h5.png b/lib/images/toolbar/h5.png index 8fe10e99f0b159fa3cd6756c95ff7a6f3aee018a..161fab3560cc82583b3beae0d44ad02e396eb468 100644 GIT binary patch delta 411 zcmV;M0c8H(1GNK?B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@9^UICmH+?&LP<nHR5;7!lRb(8K@f$X(y0hWvN(8v@d9gPB!aQb zITjBfa{y1Udx2gj6~qHLdjR(UGRfov4fWIXCOzV8YOuk+q<@O0>Z@1XbT5Q}XVk}& z`g?!@fGo>$04V@??+-;$*!6myiO7bTK}6p%rbL98f7Eq->H~nab_ZbYy+=_L766XN zqm700vMhJMn!(JMyMs6xs@k#FHpG0$%%4Pbs_VMytN;M23K2<`%jNcAN<u^c0A@~| zbGfSKgTcTyO@H&&0f-1hq&lC^`}S-$o4pcI0syz$?PW9?rK-9Tk*zW2OI2+L(As@m z!8wQVc$_lxN<`k9rr8@~Cf@r==NVhuk78yx=fKP>X5Na(Jl<CVpag(k2my=5A}69W zLJrsK)lR3=jEFYO3=yeB1gbjp-d6z15W?vW_~(D&2NY1d0<`<(L23X1002ovPDHLk FV1fgGwv_+? delta 452 zcmV;#0XzP+1KtCWB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0004SNkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRC+u>k-9!~!D1 z!^0bals1U{_wV1;Yu2n;>Fw<u{`>du&|klPG5q}b^D30q27h7(D0|L}7cX`I1Q6H- zD_5?p2U1o*%?u#TAhE4mx2}XLv^swLcs-hC5Pb}!4j_P7U`_#P{`2P#it}I^plp61 zdliu00krusObtK)!3_Xu20B^R&CRVC$rf1<4FW*6_P1}}8iDE>d3kwPe*XNq5F`!| zKyU+qnnC#Su76#-dSPNZIy#m>17tz$hYuf02?+^l0}b#1sw-w;VL1V0uLKAn6a!$+ zMfL*FRt5<P32mSpNaJjv&AmX)GC(iOfYbm45Ih=T&PE0xF^~Zu%|KiXG{6cPULaQ; z2eAPHh!K>O9UL4QL7@yaWc8IRS60f)%ZCHm;AjMS4L#&Spp*H5nn3}09H?&x$N+!< uVx%-L00a=lDG?xmC^i5ffG9QqAiw}ny8^Ua$B=>m0000<MNUMnLSTY3H?3a) diff --git a/lib/images/toolbar/hr.png b/lib/images/toolbar/hr.png index 6d68d66aafc2ec82c3c615cf54b61f62976f97e0..f86a8ec9428680e20892aa2ae7a96756de66877e 100644 GIT binary patch delta 302 zcmV+}0nz^S0?7i9B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@7SJ%OqyPW_)=5M`R5;7slD$gAP!NT`NY+x21q<2A*RYGvkw>r$ z<PCfidmli1d#kh-g3UI$!!>t)Y}|mlXpsfMQw_r~=R3nx5r4rF9kEdLuIT%IMlmy{ zX(H#0h#(@Qlt?Ktjw2~0hGD1xs-+QTg0Ac0H`iVNW9GmFZQI5Vu9kCt6p_oX3l2kY zbN70`S+AOX17?A`Q!FS2iWzSTPtWpjdwp?L18ml-=ImrngL_~es0XSQ>QD@{cGPRk zg7eek=F<&cwkKt;Q&Fcls5<K339CPU<$ti?9n|T$b~P0@GXMYp07*qoM6N<$f@PI} A#Q*>R delta 345 zcmV-f0jB=R0`vlqB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o00037Nkl<Zc-mt8|NlP&B>*6Rm>4Jo00G1TV^maBz@75<?_Y*r zzkV_N`0<0`+qZ9E{PpWsF#hu83z)uj>lPzOEkFP<QtAbO0DpqJptQ8~KOtLT;!rhU z7XSnh#V!B{Ah-)+V`Km0vGp&|){{Wm8r=YZ0HW9h009JcLHov6du4=Kov<nR`}aS? zpMU=tego;>zZrn^UxuH57#OZR{<d#fu97oA0D%nvX%^#y`-b7)zyAz>|A90D@gGJY z4bsTK@Q39ekW$S8HdIQG4QwGm0Ks)VfBze+O}~M<e*+Ep^XDJfAano_Koo}oKmbvk rlmP;WVgmpIh++c(0*GP*00ImE)aki)=ZbWH00000NkvXXu0mjfU?GsY diff --git a/lib/images/toolbar/image.png b/lib/images/toolbar/image.png index d1416fae90fefa907aa45b6eda2bdf9995753957..ca284eeaff6ae9aecfe86ec45981fd76f225fd35 100644 GIT binary patch delta 569 zcmV-90>=HQ1=0kNB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($_1M9cw$p8QW-$_J4R5;6}lf7$`VHCxGZyGRS^HGicNT49-(4k2M zQN&fZf{T-XfX<4p;^OG2gD4J)ATEMK2W<xz(XBy;7F5t8SbwCAF=>+Kx#v1OueO7V zkPCNt9ysT4&bf)ZGt6XP+&J-91j&&clM_ssiC`iG5iGuC0jhH|$PC<Zckm1jxPiOl z5(+|QNDcxg!}6Qu2p|hI*S^x-Z2cE=zF1(QGP$F`&FOBocz*gd?nHLqwZOH?B}Vs7 z1LFSmI~*Jz$A3&@0F=70xOJPwty}by6-*G)9T>dYsH1KJ*EYd~rygXY<|zAU=_CE* z2}_-e4AdkT3<87zjs6)H)=$!EzsF2SVDeN!3J@%CEMLdWc-cG4fYk_Mu+pybw0VKc zAMXBEAURpdQLt#32E1!En6H-k(&^C|nP=n29Ai4i=YRE6w0n~%j8K!uRCWUd6ZP^p zW)DnJ$sMLv6!IFM@~enP9H~A;#F(|@Sg=?mlcV66iHSXjkc;5k$b}=Oa?`O32qD~^ z?`q%{ozDgnGAFlhl-|u}xJ9s-`A!Ec?S|x(OC^3?K-Ns)3B|E8g~EQM_%U<-3Z1nD zK;+8Dc{2Op9&SPsI3!67FnN4+)^~UNU(A1+WY}xWFy#CMUmKynEY?p#00000NkvXX Hu0mjf72pQm delta 656 zcmV;B0&o4&1gHg&B!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0006yNkl<Zc-mt8|NlP&B>*6RSoXA<<22#lzyDzT7l{A-{m1YZ zh(Yw9KOh<+1`vS5F}48!24R?m`b973*8flF#zBMvtL0c(Er0HNPz2PQd6Y(1b5Jn} z)u^2gqT(3-oG*aD2K@W`hvCDMmki(Ee<I3eUVc6XaVZI~7(f7l4fqcf1Zm#wa*_e; z00ssK4Z}cwom3$M52qZ+c!v26vlv9h#J~mv1P~M0MrbJP{WcAVr!xFxya}|Of#DAn z{|0*H_&a@ue}CUE0lo7JZ1aC;7ytwi6U5CBXB!IK2Wno;u<vU+!|#6|fC_+`{{RgE z;!8hW8MeQ&Wcc*uF4$&Zuz<Y?5I_(YKn?f<3=0!peV~HB42ORBGyG<_1u+DOZ+?+x z*zh5Zq3GTmxC=mf00M{w9AH3I-~jvgo8juGOAJ2JB7Y3ezW!kN%Iw4N?y~`d;J*-t z$FHmzzWk5?s%2)-1MB$*HUJ=i;0Az9)faigperoNAjP4=pvMnX@L!MN5$`Ra50^2h zN-qJ@kZAt54;VurrvU*#0I~c98}J|OFL8E7peA5c{r?4~fiet|9CDDf0Azz8i2d>3 zC9oGj0DmBWSU@)a19CXHc^H25ZU#&Ig~vG}4g7_s4G<O)5MY4i0Du5u0V!bk&&a?p zD8j(UCj<^q5YUV&VfgxFJ2;9sM9dhjES?KA9OQ3sGGt(6ghU`f05PsC)%}m0w(;4F q4FCiXBc-_!Ab^+{C<Fij1^{0hp}!HxlZ*fW00{s|MNUMnLSTZ0&>9i| diff --git a/lib/images/toolbar/italic.png b/lib/images/toolbar/italic.png index ab8943b458cfc69285fdbd7eb5b6d7ae49ffb6cd..324e7c03659ef06877a5f4df023a72fcda44e91e 100644 GIT binary patch delta 295 zcmV+?0oeZQ0>T22B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^4%$Zovj6}9&q+i<R5;7klRXZCP!NP4#$IpW6=(=8Jq;HiU{B!@ zIEn`#<lVr6187HUMJ*v={{m}cVT@vs%4uiwB{P$CRMjle%6}}>V!(RJ%(5(J=7WfA zh^S@eOHmZT^NsVZgCt3=BC<ooeOZ>rSAP-^$FVCSXGCnRwcFVd5HTIc(Exz`sRKle zhGCcle2fr=p(`S10BEbK+RmO408&*oec#)kW(0uf5n~eYHiGZ_fvTRmt}}IAJF@_u t=jB8c5RoAw!ywGJrfH(tCH~Jd-2u5She>99#WDZ@002ovPDHLkV1nAAcZdK0 delta 336 zcmV-W0k8hT0_y^hB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0002}Nkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRESf=@ChC#T`p zuU`effB)wH`Sa&TAp63aHESG@)c^z#BcU*ekB@%<G(i5xkAEMD>(;GXfG!UZKzI#^ zjg2(`YCaFt{BgsE4FcHI00a<TF90<r{QLKh;rsXR8*r%s2p~cR1pNK`7q0;T0ff^F z-rn9|=L0o=Jbd`D04@Un0tja`0yQRp4FC4++Xj5D1PCA&JO%_ny@A&NfB?ek1#@$A z2cY==&!0atTuHxvoe`e_00D$yfT^iz12EAz05Jmy0~61OXV0Dm;4%OpfEX#wOaK8y iab5rjAc_qD2rvM-E{92ehbsU80000<MNUMnLSTZ>$A7T^ diff --git a/lib/images/toolbar/link.png b/lib/images/toolbar/link.png index 453f0d3f1263b636d8733c3ce59fa5b63ae2a73c..f2a444d96224b3ad620bae462e4591525bec8cec 100644 GIT binary patch delta 529 zcmV+s0`C331gZp(B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^BIuuPPyhe{w@E}nR5;7+(y@!$Pyhz-FL}>qNF@q6BoQj7;2Ww_ zN~Z%CDIG18n#Hj<baLrXTIg6T4&{da106aF9a|8E7P@4ri+>It)xP&mBAj4?r-@Cc z`VTmC={J4TZ}|9>BuQ{gR2-Rq5757*R;%fiO66HTpMPOlR(3j_&Q`0{697LmnasCh zu~?K+UUSahj7FpP!{IPI0FL9_vTge{W9)ge*+dwID3wZg27|%J-EQ}*)oSG_rI1o) zJ<oePo6Sxf$A5X{dESl!K$0X68Dr=5di}cHZhv2|*AHylCe>>7R7!c;?RFuA*r(I! z&y7aoE@SMRbN&^;Ckg<HqMR9qq4oRy_GYvB5Cp-(b=}+9Y!*Qf!1sMzTwH7@rH_5z zZyAR1PEnMz0}w^gCFlIcG|e<2q^GK?*6DPh>pB1+41YtYs;Ut}dW4WKob#I~iY^Zu z#Bn?jLR^*0<(IDO{-%_s7K;TYlL<6UL!nSWE|*KiaeQw+pWhckT*Yxb001RP5-`Sy zWm#2S*L${YpJ<v!0I195@+kmrnr06`YP;R;g%ExihL5C_KgQ$nUip9J<AFa*zrN(h TnRT%M015yANkvXXu0mjfOd9cl delta 549 zcmV+=0^0qm1il22B!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0005dNkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRC+u>k-9!~$d3 z+uL*N=;&lgOG{TuN=gdeyLa!=hYugZfKm?y1O$#M0m1X<&wt-PefqTh%9ShA4jw%C z6{HU!fWQVA8ymApNlDeKtE-oWhlewK{rZ(bSy@@`z<~qHfBpLPBsMlynuUdh0ce2W z*|TT69zA*_3e-~rWd8yPAg}?znD78<PIGZ_d0$XaaN_gl&u%~inRRt_6@i)*dwO~p zo;`c^mzS4!SARf2fHp`i&?QHJS~md%5ZC}lMn)Tcet!0S`}P%l|NedPmoHylMnpvL z2nq@^0ND($U%zIUG-=XzpesUv>{y`M2_QWn0{{XDY{2i|zwZN0{2?MD!pqFeyq<}P ziM_M4lYyI?8yr3$FM-5BazMNrq!y$HBnJ>cU<3aA`G0c&=)@OlYHHO$oBsiAVtx7Y zCBv;-w;0&j*%{>J<r&1q#aV&sOddaeYz9&b(gV^95I~HelnC?_Gce?Jfi|uO`dt*L zi5V2dZ{EB~1=3G}E?W<zS%3cg`4_19HPA(Yz_7V|^XARJ00G2EX;KCVAc_+bKmbu} n06+jyY#snW08wlJK!5=NOTWJ4lnJJ_00000NkvXXu0mjfiFxUp diff --git a/lib/images/toolbar/linkextern.png b/lib/images/toolbar/linkextern.png index 780c335334d8201a0bc7bd4b0e0409ea5f0d5f9c..75afd3dc22e71a9b06a66a09153386ad05bbbb0b 100644 GIT binary patch delta 940 zcmV;d15^C+2*L-DB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@I^yWZM*si=Pf0{UR5;5`lg&>YbpVE+nb~D_VL#aNRaqBIX$n=O zN~mqZVuDhIP-B`@!Kg9e<i+qGc=Cc5jfq~2O47t?z0`wZAb(g4#S{akG(r(j3T1b@ zY}s8FW_CV)Gvh&Rc+XFsyq8DvJddLrog3)^-UH48b$}1p2j)H3`|OjRuYNkpOaBW- z=SF<MIB@xuM4uW9)=|={&@B*-fgsCtW<of^nG(Wz{fmKb4j&0d=SKX%jjr0Kx?f84 zQZiIbEH+9K6@Q+}p6=oaiy%4~bC!kl!X06Y=f8gK`o8?%lkv`)Q{BnNF7l3rElUU? zQx+BIRFF4Sc8wrA`+k~2&(U?fwZk&)s{l&j!gdn)@Xb>fl|LMf3}wo$;Lr$>H~o|h zSWg|WuW6{UJ*4P5=WE-TUit0BmHF`{<=n`#AHCdou76!pf@EX?UOkUFAr`X=WkY5q zb%+}%pf>-B8CfUi7Vs4u+G`T>;=R>lKHzL366dy_CKr%-Qfa|Ou(fMp7-gczJxa$W z*>H<sdQ=OQ^_)rH6P?(mc-jZlRQjse($nmkI^oI_6s<6Yf=jf{pgyLPbDp7OE}?n{ z96a13Uw^D56bxfqqT1(qo+No-nI$|D`1}qNw``<fh|GpS_98Ual?fm8P)gYtEMQxk z;CTokB%dSPe90=sYm{ojfirBST%@g4T6oCg^);;C%y5S`Y*}!|U8b$6g>*K+{Ony^ z(<}LeEq=e3-;STGOfZ$2Mf>%T&S0FOp|{aAjenM%9elI%Xg0hve3?LnpG+ph;^HFF zOw3d|hEDG-?{2;^crq#9n3^WG8{*=tmw5l<&$)i}3Y(jM)6x{j+|Tjz^fcGLyGB9J z(A#r?!gkRwe>wQ=q-EMaPOkhycrQpa90j2I`~bRPGCVv?GMQvxV1WMqehjmW(rWz6 zM1QMgAAoJzZ_TXVzFAA8gIpE>{nqzLp3B(S7*$nO0BD+q=fcv&eSPp<DpRSH@hGPL zPhSY@DdUI8U$Nwi-F;F#p1?0FWV2b;*49u}mFDJV8X6j~g<agazr)PT%me9Y&aJJj zN_}tbXy`%YgU0&CfLftS5)yZ%<)WiFn<ed{<Ftf?X_`(toz7{RcIhAbxTLDa&%g=* O0000<MNUMnLSTZgOweZl delta 1117 zcmV-j1fu)G2l5DzB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o000C8Nkl<Zc-mt8|NlP&GRQxgWDBHnf!Gv?MS++Fh(7}H$^ZZU zPn%>re+RO9fB<5I835D>Qn&z!Lwsdj*abO789sgEX887tfq&u8-yaNr7+x~$eZKwA z-#>qM|M~MbY_8{uFCcvY0R%PxsF@YW-ftqJZS5xO$nfb0JHt<gUkrCXF*30IXJ>f( z?H|McKff3_8NM+*|9P0<%(F9>{`~%9w=8tSM}Pogg1TgZk+7Pzjg$$)yT88}elsyL z{Q1Mg@cj=PP=5;>!@HmC46lB0GCcXn${@#M#$Y0$uJ`Nb@8uwk00G4O-u00UknW0B z^I^X7_bbD5hVKmD|NUY3@`DGckrn6~28P>DKQny%`jvrQ@GS!)|7`{f5e<gD*G?%d zKDpo`KmdVUQ0OjY&id-dSBB3(pZ@(P!XWflfZ^I3Mt_F)pBWe~KK#t^i~T(Vi}GcL z_rhlxuK#_;aP8$IhHzacW}qvw00IaUaHg_+(hL{AJ!5#y!Nj1&tjzEaXwbt~zZib} z_|CvD@t@(7&@P5M|2{A<{QS=#@Q0n@_UoSvE(%5rzkmMG1qdLJ0m57?+zbza2E6+D zje(a-iGSh4FJ6ZC@BcCIi~e8`6a2>T`mX`Qr=J%Y*#CcK`26NA!@Cb$3_P5?48MQ< z5da7v7GNweG6G}r*UwK3{~2T%SXlouY(MdvfsvDk;rX3E3{3y|7^FnMGw^=4W%%^; zH^UExGeC{^85n@E_vg<aMt}eSK>)u01pWN}?tk+7@*5Ka5C9DbF96}?{r~~t*Z?B{ z>;N1V69Cx6=K#_GC;<Bc`~WZh)c`0SBLL><2mr~$*8u+c|MCI=K>)u01pNE_&fxCi z8zc%H0K4VG0QJW705S<109RLC0QL3t03+n&00hIy0QLI-0AE;C00;&J0O#lD0L{(K z0DlkX5%~fDK>)u011?u7?bYhvSxY250>8Vx01@g808CF&0Dh300I;W{0N>x<03#k7 z0QvFj0KUDw0II910Ppta06{%P0Po`P1p<g^p7+XK!06bv>)JsE-nX0#{Ji|&lqF!{ z$?)yRPlkwy2nHJ)8wO8LPX-SU4~8E<zkf3@tN(zg;TK>62p~`_0Hfn~%z@h%j)*Yu z=`p;136}hJVj~0N|9=dfot+Ha+}vO>ke7f$3>UXQ{^p&*!1eU$(;ol<1kX$!Q=NFf zJ^itj@2;SYv$YGOw6rV(D-$!r%a<=1Zr!@Yz|PLjATKY^ATBP>@cYm24^JLHVOBVB z;J^!j0AfVW&g$yw%wmor`8+T9TBO9JIM~_P85tQE8Ll&4{qUFh?|q#=dYT~q&!0d4 jK701;HPA(Y009O7c$uj92&gJZ00000NkvXXu0mjf5?LLS diff --git a/lib/images/toolbar/mono.png b/lib/images/toolbar/mono.png index dd398411ec1cfdfe9e59af03098fa3994a3bf0b6..178cec9f248d65a24f9295f4788749f20b16121b 100644 GIT binary patch delta 358 zcmV-s0h#`)1AzmOB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($@BpB!VBme*b4oO5oR5;7+lOb-yP!L2XQO!+r3rjvggNl2E9KkSB zNuWWIVNs!>K@ZT%7cepoixgziKRX*sE{QFtG7Bi_uwCiT&VSplT@Ay4d$h)#`g?;1 z0NC&MpVztpko0|jboW@&lcckmRU{LV9my_)uqBzbZCi~AVgMO{O46gdAB&=Rmh^3A zA7xo)BtbH+>v~7>on$gcIOKWW^nDL^ha>=inZ1yF1ptx=Apii{wmq0xGa=-8UIBo+ z!`*SYTmS%NSzo@5tRV!DoY+sNQ#Bckl5~?`t}DXw66XeH1~XeUSnA(=qnSa{;v_SR zmy)f2P1%JIzDOo%nr_GbX0yp8b&?Q8Q8s_G`o9JI0QNz~w0?Fj?EnA(07*qoM6N<$ Ef{fmj8vp<R delta 400 zcmZo<Ud22?rJg0-(btiIVf_hn)~=Tf3=EPbt`Q}{`DrEPiAAXljw$&`sS2LCiRr09 zsfj6-g(p*O7#J9BJY5_^DsCnH`TyUZS(QPdVTObT3j?FeMn))cgh@$DON-Cpr+CAS z2j}P8^Vj|TrTXFXbANM%y04Fq_w(N0UvJLvh+m=p&)eJP><Y03Z*OhoWng3}Ze$P; zXZXmrfUSDLGxo`9zFZ8O_A{C0M{Z1VWei|u7T}h#tFd78&}We3xWpmgV8AS8Wo4zu zkekMk1w<^|Os3(?qTd>BC@?peH6Lv>GiP|}ur8H>Lt%q>!z}ZLj0tH1|Nj0qk5Ihu zEYe_qQ@u$uPh;cr^Yfd(GO!467d15GxRo&)HB>P=%P2G$@Gw~M_H2}F@C9-L76~q4 zNZ~M>-B84IBZf`D!6##z3d7$j0g*$;jveDODD?C^$+X}ZzXEeaWF+?lka@~WD;X6U hH2gY|!-kFFo8z%9u}Mj4z~JU&@O1TaS?83{1OV1Jhxq^i diff --git a/lib/images/toolbar/ol.png b/lib/images/toolbar/ol.png index 91ce32b9d8108a07c9ae2d589f55a2ea213233a7..3162fa21dcbfd454de07bcd8e4bd6af398e1d4ac 100644 GIT binary patch delta 376 zcmV-;0f+vx1Cs-gB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^FP1J6?EnA)AW1|)R5;7Uk}pUDVHk&>Pp&P^V2~AY2ZHgK8bs_y zF$j)<b!ZU7b%To9E{mYBa=|W$f<agigJGPu1(QQo?)!7!XMYg48Se)A!V7Qty*xbp zgmaE@W&&X6qFcRu=()lV7OJJBD1ir1UoMMLf-nr5K$K+}#u&8LD5cO^Bc((sMI6Th zKse_Zge}xp$|4Ve7+0bPaDMmUvdnV(()U}tGq1TNZm&*?o9Dh?o6RrN16V(Kt1ix! zlD)Ml0nlhPnsG|0NJ`1*rfE93JDtu@;^FnX)0stEIM|r}2Z>>;>#PH7;dHAaa!Wkg ztO#r2vEB0v5x{qNsa8$^5d=X~N*VpMPD=T!jm8*^F++*_S6v6te)>GVKbsH#RN@!E W46Ewvax8ZM0000<MNUMnLSTY+t)dM8 delta 409 zcmV;K0cQS_1G58=B!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0003+Nkl<Zc-mt8|NlP&B>*6Rm_S7Cf+s4AkGv<#B!B<{8(^lw zeVbet00a;Vh={cjWJGpBMMXt6kec%M?_Y*LfBrE1{{5Tb*MF~HVEX6JpJ4WyHES3_ zY5@X>5flb+&HsRg*$Fa|;sSsGVx%+>0Rjl@g?R_w{r~&-AH%+@pH-LVDc&K)0Du4j z2V#<g5aaHPpH)qjNe@hb00O%pxcjb(xd!*`B5yIU|KsE1vw;CM1r%V&_{WbQaQ4lc zH^FKF0tg%i?SC6y{QnK~!f#+8Hit@)6o>!;L~$Sj1Q6H@70aLe{|7YZAJ7FoF)}2% z03d+Cf!Gl#!wAxR;`Dn}Qe6NLKrAo@NVA2hASf0Xjg5`7fdMrImg+z>a%u#nP9O%m z6d-`WVNkN<2{<55pa0l-uvfc+6c+#l5XFHA5MThm3=*sA;LH)C00000NkvXXu0mjf Dw<D+D diff --git a/lib/images/toolbar/sig.png b/lib/images/toolbar/sig.png index e4aa2943c06090d7e7ffddee2eee8a63056b2199..ef997b7cd56ade07014c7bd7ed0609e67af27c20 100644 GIT binary patch delta 544 zcmV+*0^j}K1i1u|B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^0@LwMm;e9)#z{m$R5;6}lgn!pQ5431H;fa~rYR_mBNiWsLJ^CL zq79C8BM6o*Tz4U^ibW!VLbk3&@E=eYMWI{iLd2jIG0<kA)_<19hHh*dYRpWMhD<WA z>nek-NvY(l?&5rpbMAM9l#*^LM3<$s9;sAnmz8?GPPJOaG))Y{pj0YhnkG$O!3%|{ z6!HQ<{LcuJFE$2%dEh8;_2uosm4Kk-U_a$6_hz_u={&;s_^?|3-E3H62XfF-9yzWI z4Qncu9hZf?!GEXajn}~rlF8)5cFM9R-a9(|{Ej}P#fLSOY_3W?rc&58sT51Kjt=a! z(6$<<uYcPaeX`Xvb>!@+3jz4uVxGn2^|aGyPP8Sk(_&mI+MMi55b94*`~HZx_EW6b z4c=r{S@^n^b{%Kp=iFVZZ4NvaRrV!N&)r9f^%EU=#($VQO)mS2&)Jm#+%ZVLM??}q zT1&`U1|@70IWvV?e!m6;;En{YOVk%pEUOp)P=ZFq!!GB!dGh0fzrnkbxMzfm+nYZ) zyg5(V$bIn~mOPhY*depGH&~*s>$89+KqSWtm-Q3tGoH)i!CNx7Uq=4<g<rE`z;of) iq%0mJ-Wj6XbN&NxmjMO!Cshdm0000<MNUMnLSTX;p#Crb delta 581 zcmV-L0=oUV1l|OYB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0005-Nkl<Zc-mt8|NlP&B>*6Rm>4Jo00G1TV^maBpg85*w{Hxe zK7C?%|NcG0yLayx-oAYcX8-)h!tj@go#Es2JB%Q800G2EihmcP=RXkzQU`%p9Efd~ zCdym`2q3rtFc;vn**bqQgNvCq1LMEH3<qv}c=PkecYA;UBFY6Yn@yxyH1#Cd7(Raf z!*J@(JBA}ypKJmMAb1$$<>i%Pv-v-l7`H{%yi6NS2{Dl7GdDjmi1D#8Jb(F~;p6MK zUjPCKrwe}VWq*`-_CwMA(r1g_XI$yRstUSr&3jJYVK{yD-rnCoe)<9g5LN?#n!W$C zNNoAfYstXGZ^`iGN+ZLrUlSO<^La7sIDUiS)WzF-|NQ>#`*=&vcYpxGnhyT{VPFGk zW>YI<VBzCu;4zuYVE-qJ;pUlT49Ct~gKGw<1qdLl27dqpne#sbC&T~mml^(lInKbs z{)>TAIh}#+!~WYqX}D$(00<zg2K@QM!1IrhhvEBoZiauXmJB~W{$=>};SNKf{Gk$L z%^&~}KrA@CVDR$kEe4^d2N^!RyLsX7Z-&c2vDfUs8IGf?1qdK`Allg2tOQaL!1T$O z=l$H=Mn3M|VxXpOnfU)V@ud-f0K$lcS1TDsff^YkqyN7qCV2w{5F@4886dy_aF+oE T#_oOd00000NkvXXu0mjfq!1O! diff --git a/lib/images/toolbar/smiley.png b/lib/images/toolbar/smiley.png index dee8a962ab4b541bb475d7b975d56df7c2a3e5ef..f5d3a0a94116c9acd388a63a5dcede9497c39961 100644 GIT binary patch delta 706 zcmV;z0zLiQ2HFLXB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^D&|DyVgLXFXGugsR5;6}lg&%iVGzeZ&u?wj-EDm-p$H5kii)Tx z)-Ga1Q4}5Y(8ZJ8>L_^0`U`~aor)ql1d5Pg6owrVjF7Of7k_Pi0}a=-+S>j7p68kA zU~Q7oq2@BfF!SLH^BtqA{7;nq-f)jiN|g>3PK%IH1r<g_7*OHb#&eoqJ8#x1aF0#1 z3O7uBXM?HEpz&Hzj}~(H<x#?S-B}UZYg%+@9l#Bm7OigX3AVJMi7NcJ*GRa8x+0hg zf{L9O8xYRiBY*rb)LM65drJU2XlhlNj_tpjlHfDGm<9U<aUtr9s}NC4c|Ec6{d^j} zkQZV5);9eZ0I1LrZ0|~G93;$w`^sQn4kQ8}@#G<h&Er0g;loK1d%9BM=>P}-L^x|| z8j)fabp=!`$IeuuVo`5tYR;n)qBf6Pc}`jNF2r+oEq`Dy<!QvNl$KO1>LS!fKWdBm z2nlmQi1##<04fyJ6~Q|m^*&|l?cD03w?A^o^yCtQ59Uy@po$2wUkW@~YypUKw0Sr0 zUd=K)xq$i*70XO^nTa>cWE#_$Ac6QYY{*2(NFwyx+~~oex}HRGo}*0-j6IuT{KYJI zOS00C$$wOlOvETlAE1z%#zyp)&bZuT>O^>-YP_8i`v#vMN1_$fg^2rkMu;VMV$!FW zzJD?AEISTe*2Mszrd1b3X#X~G3v?T?bR#BKi;99ML3}eC>Q11E<1D@G!$!0px~z-q ztUQ0moD|RX<lfGP_@;dX8v+oA3q4=w-?A{=ojY}wONX!Mz#o4BVD_d-iKkP9)83PD o5je|;vkW*(_mQiAd8U7f@2vxiy~h8VQvd(}07*qoM6N<$f@JeaHUIzs delta 837 zcmV-L1G@a$1>6RZB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0008+Nkl<Zc-mt8|NlP&B>*6RSkMLj>}TWwnpyP!AA`rge+*_I z^MUMBK=uwG-N)<u{|mBufB<4db^%bcJy6knM!8Z&MgcR1|9@;kK;3^C{(pbN@b~?B zhM%{)?*k1=6b$@-5T*wpfZzuF*~b|8U%-AHlSDMbe=dH8zu#^!{QLQq;s2i>3=E7M z3``s<42-{-7=Aul&G7T(!64DF|LZ~e00IbX!0&yGLO|*vv+i=9e@vek{{Fbn!0`Js z!@oa2fe!cqF@NOWe+EW&IR<8SU51axlfD35A}<;J{~bU8F@a10I=hHTzMAJh8&KU( zpyoec8TM^_1LXW-VEFrs;m~d%^Y<5qKc6l${QY^CflITR=igt3B9LBy00J8TG|ih) z(465P(B}Vtz5@;X&EVk038w%5{mo!&{{_efx&~y(hkvsSECOl_Km)u%dI16mW`Gt0 zJ0H-=AK;q6^q*fq_Ae;=H<<nJC(vaKKN<f1Wl#j^1qdLR7rul2`S%aQp7qBV9^85Y z(fIc_l>W)^@a|iNeLJ6k4PyWX7|>E?kY0cQg1F!>!+nO|-+?SP1`B(2hTB&kGd#Zg z0<00F;eXNn_Y8M#zGpBq=VM@G;sUB?Vfg)%;SNYIKmf5oy|DH7oAU-t0&)yo+|L;- zY!w+UpMJn_{o-Swt9~<Zb22iRnej7lb1^fp@aZ#rfAf&x_b-O6AiV$q1dhh{>lj6W zhTP*ZU(ECG_f3YsU#<fq02m&?X#DpF7L5!H%zxa#w7}=i@Ni4!7hsSm8CLy&4G=(J zF9-(xe+^1u-|j2|`cImHna`Yoky!}n{QuziXJQj!U=?)%CNL+4w^ufTY)=Gf2I&O| zAe5y1d?}+VFg#{*Yn3Xp32QSju>#Hi_lM!n&%X>`pWkA5alHFJ(B>@Tn*TdsdH@25 z5k5UPK3>2GN+hK~7kL1q$_yBj3_wk%fOrQGcbn9rW+s3DVx%-X0|XcVtpkg_C}(2O P00000NkvXXu0mjfdqjq* diff --git a/lib/images/toolbar/spellcheck.png b/lib/images/toolbar/spellcheck.png index 9aecbad4bd47b0a0c91b980676a14e8e0be93d24..8e62ad2d63974a9d998949c7e06ad529b6b8019b 100644 GIT binary patch delta 685 zcmV;e0#g0r1;quBB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($~6{^i6)c^njQb|NXR5;6}Q(s6^aTGrH?xxpmBCN)&EGA{CR9jh^ zV-wj(Q7Y)6hyv{oY!CGy71$qrk*Ho2d?;E^^%nGy`4D7CGk<O9%yl2ivNrdi<Yma+ z-2Zv+?{|8dX|4!7a2^il`_4IhABRCi*hsLj!QcP@9DO#orciAjyz-{5vDezJ;fp$> z(by=%K>671i6&D=^$jAEx=c!ufFcB*&AM^}7(|4V51S`sDlet7*_)Km{X`}fZ<o(y zy?=B%_A}}zD1YXMKi(6n^IgC=`mF5)(LyQypbDuVGVyZ!rp|0UGoOqkLvl*-5(1XM z)1YfL(a`aj4~J_B%W<mn6j4WHQlZxHEz4;c;^NZiM328oNmHGYrD1Kc*0yGAn@|(h z*#!W$pQ98@My`Ko0suIC%jA~Rvc5oDXxn{pm%B*K?|;lDmW8+!dsTI*a!8@dHgj1+ znc+~Eb}^wuiJ0kO{?|t4oWB(IXx}yO)l`lJlgZ@Jq6yzyf`EvChydL)7oc<ISgu~3 zaC+*vp*N_UdOnY;?ynNmk8aQPxRn(d@NGSy_A_1IUO-rJ;*))8=B%Fu4*Kg`^j8gq zEWDhGi+|t=A4Fe+xW>kn!uk2miPkN5Uk4HkWIW~sBj4R@Dy}VJSs0j%%z;O$Md3Gj z{eU)s1EYHKjJd=-7s-H0&x071VPHHO0?(oaryIp}+WaXZ)9N#Bw(0`TniAEQg)|I$ zr2u#&8-BNodDYD;+L4iK_D3Ov%b#YU{B3DI%q9x<uZ^nV2e9McWJCmJqwo9+fZ2Jg T*r!P200000NkvXXu0mjf1#d{1 delta 714 zcmV;*0yX``1>yyeB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0007XNkl<Zc-mt8|NlP&B>*6Rm>4Jo00G1TBAokdXL7T18Enel zY3|T#6VJ`TS^nX}r^Ael42nmpPP*wAXqEi^{nz}*w?FR~{(t>vxU=wHI?Moo0Ad7r z!EdVj$>0BefBg3IXT`t2|8#+ht&Y{4O1EjZxc2GU2WK{3j=g8vE@)wM0YCsTI``Sc z|NZ~p>fgWrxBvb5s|wV7jD>@>{O9K%PrknYdjI#gKga(5Ww5%l;BGpyM)86f9IsxP z{RIdhCKeXv=zo9z{|f;%s&a92c>enSo8j||kB3h-opby1{h!dEpZ{L*@bcKA*cx}i z_?3{;1qKGDi2wn_0<@X`VDV8mkc3I4{><Ose~Ys5u-mF6D$nHP;*k6K<=2JJ?>=qR zOw!o(=ieVG0~tFRaibcZH(&mI`1|5V6F>kl5*v+-QGe$o7}R+7yQ_0+9J%}T>(^ax z^#32Sx(g6M3?Ku*hSc6nU?{)o3gaVVhS0M<;=OnO1g?1UpSkw>I|j?c(l9xI0Ahh# z@q^)%q#oBf#+n<e8D9NK`#($PJ7dH-CI%LUiI$$CIpXY04C~K+e!+0ymEr$Wb}wMs z00Icb3xAAhSE_xzL|V4p`SSeliBD+^3LLfW`n+bGOiT<LPQQQ5aNwQU{|gAsAOH|R zs0PGcU|~?;Ivr-fZ}9m24+ecv4u%&Welu)1@!>whfj3tFuQ|Lx4;z30!U#l0uTu)b zHbQsOjQN?bKL5_J>DaqFK$~s<-*S3^EpPz>h(iHupqU;la+-GkKST2Qdkl)ZC9tW1 wVSoU_Eup!$gFzO*W)KDlAVx~FGeCd=0D#$fs|Q%G@&Et;07*qoM6N<$f+m4$x&QzG diff --git a/lib/images/toolbar/strike.png b/lib/images/toolbar/strike.png index f6dd97647fe836e046867db7e1405e0c383d5f8f..203aacc2b06d35936485b5cdcad376b864590aa2 100644 GIT binary patch delta 388 zcmV-~0ek+!1D^wsB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($?C#u8vT>t<9EJ;K`R5;7klRb)qKoo#qmc76<RuUwwjkpI$leJ8$ zG#<dxPT~>bvSpg}0H)X@Bo`1iH;Ae2gg|&d4$M{yStG1qwSNz$m~V!UnfEg>#=w|( zf{`&=@Z1NJBvD%HZQHgd5m9a1&X{>t6vgYH7l=qDBA4B6m*;t&5z&Q+7K6SJ$8khN zika09+wb=oA|3|`MC2kOKt!AMdi}9nE?)ou5Haf$O!~?ghT%bLz0g_%BEs!<J27)w zmgTWmkfvz@0DW)W!@91aswz02&rsL(L#~Z6?_iAiwN|T@y5IZ0AGxku`Mz(a)9F|D z{(~S0f@nUUZ@S#JZDUzh)#VRKL_{E>t><~_o)b~S%=w><gowb*4Kp7c$N3bIMnsf| i<k#yp8&rk=HB8@h%<g!ve#_PX0000<MNUMnLSTYD(5`p@ delta 424 zcmV;Z0ayN?1HuE4B!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o00040Nkl<Zc-mt8|NlP&B>*6Rm>4Jo00Bg?0RRESf=#frv{dlV zpFbVHfB!!F>(?(qAg%QC=TD_&%a*yKs|5%ktS$g*x(mejrhiPCG7AVgfBg7y4~Si` zsRali3<L7=^3s5c1%WmS!o-#@U*7rs`}aNA3;+lqCM>q!17ZfCA?2Z=p)>vb{ER{3 zKm$6l82}JKjM$<vDk^F>FbrIP7^IQm>({Smfi9{zdGaKND*yrrY(PatMJbTog)aHx z#S4bJckeRXxqov9%tjAupxz#U0Ac_cfQ<e9{RNTvMn*<y+S=N8f%JblIk_|F>Hz`> z!vHrow={cu`*L(~85x=XVq#)<(ZvA*2qO?deg+0$hk=2CAhI}6>^(3XW}&MG2p|@0 z1^^X;6z^70P*@F&k@uj)1jMsGefoqE6956kNNHvQ2q7Sf^8!EsQEUJ}fB^t>%<gz4 S&Z%Pn0000<MNUMnLSTXmZLS&s diff --git a/lib/images/toolbar/ul.png b/lib/images/toolbar/ul.png index 4331bc6c28d331da96dc2cebab008f562ab06893..471171db4a05adafad54981d0c5b3c18cc360989 100644 GIT binary patch delta 356 zcmV-q0h|7r1OEb$B!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^2s0$7h5!Ho3`s;mR5;7kk}*reP!xr~lqv<C1O-uOaS=D6tGKzl zILF1QE#AQ){sR$&4vB(G3$ESV^fzQGh!N31I%!9Tyq6cAi+@JlY_sTr!#&gC@^Kt% zEoD@pq$&WN{z%Sm$8o1Wl1U4y02?bcX)Mmx0Rg(6=d}Po&vT41WLbvRnk>suN};u8 zFc>%hSZitb5(#cz<906*Yb}%5`5O=qE)zMueu?+ao~DDiwlpKF3)T8~xh6o@b={WM z+E+^P-D#Q@IbDjPFNnJ*4{~&s#5>1#{}tl43}ye~Io>)PP6=^+UN#$Z#S)v%W=kpM zf38j`^<$037>qGaQSf;G)&=C_5{6*_1i$&9G{kqoL*Z*y6S9l|0000<MNUMnLSTZ! CT9p6* delta 382 zcmey*G?RIPN<B-uqpu?a!}=5EtX(e|7#Ji=Tq8<?^V3So6N^$A98>a>QWZRN6Vp?J zQWH}u3s0unFfcG`d%8G=RNPAX^Z&m+vnqo^!wd-x76wKZGllYllbbSk-?w47xI~IU zz(GgBDR|am2gfPCawk|M4Hhn1q$KU(|MT~E{loL^>m};`*Z({F;q`TWgTJ4j`x{iB zon_jiu$O`H2m@F1oS*&N%idM}WpHW!u_U2^A!&(;03%b!BL@}^g$;}=H_M5a<ko#v z*z#TOWFv=w!vlv9p=8|&f=LtWl}|GA9r^L&M^1u+FC(jj(Z7$6+2_=Le&$=Cz{Db8 zp}=I7Cptx^?$3d(pQOscnnl=^92f#+IzV1Hu<k*T<DoCV`Ex$$PX-Hdx|GgiVrI>& z@G>zoJIBU$MI>Ss^TiV@1*cdwN<cI{IM=H$>@aJg$>E!u)0Z=?TzO;%FjO@7TpAdd Z84fx>%$6^>7Xb`i22WQ%mvv4FO#oD@lH33Q diff --git a/lib/images/toolbar/underline.png b/lib/images/toolbar/underline.png index ee5e0d9fd537365d5a2556dded62503d9d9c39b7..bf9665a680d1522b9cde56577b200b5b0e8653dd 100644 GIT binary patch delta 348 zcmV-i0i*tv1NQ=uB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RQ3J($^8CjHvbN~PW1W80eR5;76lQC|CKoCVgRu14JP(VjTLu+vYOH_0b zH?V{RoqHPFM@U0Mkt6sB;T|*;NINsTV$&p+gHc3GM%rR$XMf-RFa33_wOCUdtgM&& zO<9(&08Rk5<2atHsyck1Wm)zvB70^&G);59U9#5xSVd7>^E|iHewwD+BuPG|{Ra!i z7>LM&)Vi*FrBwf`1pp8cXsu`cDy6UpFsEQKfSJL}&jX0)Pk_zLP%9#c<9L7H_kDjy zMC}s5Wf+EDDOGh0!_Wl)&+~RfbRwe5bl#bZauh`_Gas4RWoC#-%gk?G*R_iPPe&O5 uf*`P8uY#GOwZ3J;7z1OB^REh4|He-u^~VC3`{P#t0000<MNUMnLSTa7Opo*c delta 378 zcmV-=0fqke0+j=hB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0003eNkl<Zc-mt8|NlP&B>*6Rm>4Jo00G2;%&DlTNB~m(KrHa@ z-@gf6U0sDRxum3|^}l}o3i$c+XW{DAt0%z30Ro5t<OO70UVmP`zoew(Ke~8iWTZfF zaPWC_aex5A@WP)ze;9x^VK{Z!vSlB>fB*ggT^t~QSkMJPnt%WPjn%(E12Dt@0tl-C z*j#|i0Du6(FaQ`xU`(t500D$yz>gn4NHPE*fS9l-x&ZQmlao^bvbd_MssqsQ3+U<r z0tlM{6Tf`<0&@!SdLttv1(2AEiV8?`KM+quR}T<CjM$R0xw*Ll&>QtY45C4SdI3l; zeEs@0h6?}!h>_B~01!YJfvBUS^B-y}I50tJ0+u#Fi42Gtk<|kP5XCM42q21cBS3%w Y03!9r0#32cy8r+H07*qoM6N<$f{EFg(EtDd diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js index 641124c8f..43e6843b0 100644 --- a/lib/scripts/edit.js +++ b/lib/scripts/edit.js @@ -21,7 +21,7 @@ function createToolButton(icon,label,key,id){ btn.title = label; if(key){ btn.title += ' [ALT+'+key.toUpperCase()+']'; - btn.accesskey = key; + btn.accessKey = key; } // set IDs if given @@ -127,6 +127,7 @@ function showPicker(pickerid,btn){ * @author Andreas Gohr <andi@splitbrain.org> */ function initToolbar(tbid,edid,tb){ + if(!document.getElementById) return; var toolbar = document.getElementById(tbid); var cnt = tb.length; for(i=0; i<cnt; i++){ @@ -306,3 +307,106 @@ function insertAtCarret(edid,value){ if (field.createTextRange) field.caretPos = document.selection.createRange().duplicate(); } + +/** + * global var used for not saved yet warning + */ +var textChanged = false; + +/** + * Check for changes before leaving the page + */ +function changeCheck(msg){ + if(textChanged){ + return confirm(msg); + }else{ + return true; + } +} + +/** + * Add changeCheck to all Links and Forms (except those with a + * JSnocheck class), add handlers to monitor changes + * + * Sets focus to the editbox as well + */ +function initChangeCheck(msg){ + if(!document.getElementById) return; + // add change check for links + var links = document.getElementsByTagName('a'); + for(var i=0; i < links.length; i++){ + if(links[i].className.indexOf('JSnocheck') == -1){ + links[i].onclick = function(){return changeCheck(msg);}; + links[i].onkeypress = function(){return changeCheck(msg);}; + } + } + // add change check for forms + var forms = document.forms; + for(i=0; i < forms.length; i++){ + if(forms[i].className.indexOf('JSnocheck') == -1){ + forms[i].onsubmit = function(){return changeCheck(msg);}; + } + } + + // reset change memory var on submit + var btn_save = document.getElementById('edbtn_save'); + btn_save.onclick = function(){ textChanged = false; }; + btn_save.onkeypress = function(){ textChanged = false; }; + var btn_prev = document.getElementById('edbtn_preview'); + btn_prev.onclick = function(){ textChanged = false; }; + btn_prev.onkeypress = function(){ textChanged = false; }; + + // add change memory setter + var edit_text = document.getElementById('wikitext'); + edit_text.onchange = function(){ + textChanged = true; //global var + summaryCheck(); + } + edit_text.onkeyup = summaryCheck; + var summary = document.getElementById('summary'); + summary.onchange = summaryCheck; + summary.onkeyup = summaryCheck; + + // set focus + edit_text.focus(); +} + +/** + * Checks if a summary was entered - if not the style is changed + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function summaryCheck(){ + var sum = document.getElementById('summary'); + if(sum.value == ''){ + sum.className='missing'; + }else{ + sum.className='edit'; + } +} + + +/** + * global variable for the locktimer + */ +var locktimerID; + +/** + * This starts a timer to remind the user of an expiring lock + * Accepts the delay in seconds and a text to display. + */ +function init_locktimer(delay,txt){ + txt = escapeQuotes(txt); + locktimerID = self.setTimeout("locktimer('"+txt+"')", delay*1000); +} + +/** + * This stops the timer and displays a message about the expiring lock + */ +function locktimer(txt){ + clearTimeout(locktimerID); + alert(txt); +} + + + diff --git a/lib/scripts/script.js b/lib/scripts/script.js index 490394dfb..44409c712 100644 --- a/lib/scripts/script.js +++ b/lib/scripts/script.js @@ -131,102 +131,16 @@ function hideLoadBar(){ } } -/** - * Checks if a summary was entered - if not the style is changed - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function summaryCheck(){ - if(document.getElementById){ - var sum = document.getElementById('summary'); - if(sum.value == ''){ - sum.className='missing'; - }else{ - sum.className='edit'; - } - } -} - -/** - * This function generates the actual toolbar buttons with localized text - * we use it to avoid creating the toolbar where javascript is not enabled - * @deprecated - */ -function formatButton(imageFile, speedTip, tagOpen, tagClose, sampleText, accessKey) { - speedTip=escapeQuotes(speedTip); - tagOpen=escapeQuotes(tagOpen); - tagClose=escapeQuotes(tagClose); - sampleText=escapeQuotes(sampleText); - - document.write("<a "); - if(accessKey){ - document.write("accesskey=\""+accessKey+"\" "); - speedTip = speedTip+' [ALT+'+accessKey.toUpperCase()+']'; - } - document.write("href=\"javascript:insertTags"); - document.write("('"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">"); - - document.write("<img width=\"24\" height=\"24\" src=\""+ - DOKU_BASE+'lib/images/toolbar/'+imageFile+"\" border=\"0\" alt=\""+ - speedTip+"\" title=\""+speedTip+"\">"); - document.write("</a>"); - return; -} - -/** - * This function generates the actual toolbar buttons with localized text - * we use it to avoid creating the toolbar where javascript is not enabled - * @deprecated - */ -function insertButton(imageFile, speedTip, value, accessKey) { - speedTip=escapeQuotes(speedTip); - value=escapeQuotes(value); - - document.write("<a "); - if(accessKey){ - document.write("accesskey=\""+accessKey+"\" "); - speedTip = speedTip+' [ALT+'+accessKey.toUpperCase()+']'; - } - document.write("href=\"javascript:insertAtCarret"); - document.write("(document.editform.wikitext,'"+value+"');\">"); - - document.write("<img width=\"24\" height=\"24\" src=\""+ - DOKU_BASE+'lib/images/toolbar/'+imageFile+"\" border=\"0\" alt=\""+ - speedTip+"\" title=\""+speedTip+"\">"); - document.write("</a>"); - return; -} - -/** - * This adds a button for the MediaSelection Popup - * @deprecated - */ -function mediaButton(imageFile, speedTip, accessKey, namespace) { - speedTip=escapeQuotes(speedTip); - document.write("<a "); - if(accessKey){ - document.write("accesskey=\""+accessKey+"\" "); - } - document.write("href=\"javascript:void(window.open('"+DOKU_BASE+"lib/exe/media.php?ns="+ - namespace+"','mediaselect','width=600,height=320,left=70,top=50,scrollbars=yes,resizable=yes'));\">"); - document.write("<img width=\"24\" height=\"24\" src=\""+ - DOKU_BASE+'lib/images/toolbar/'+imageFile+"\" border=\"0\" alt=\""+ - speedTip+"\" title=\""+speedTip+"\">"); - document.write("</a>"); - return; -} - /* * Insert the selected filename and close the window * * @see http://www.alexking.org/index.php?content=software/javascript/content.php */ function mediaSelect(file){ - insertAtCarret(opener.document.editform.wikitext,'{{'+file+'}}'); + opener.insertAtCarret('wikitext','{{'+file+'}}'); window.close(); } - /** * For the upload Dialog. Prefills the wikiname. */ @@ -274,42 +188,6 @@ function toggleToc() { } } - -/** - * global var used for not saved yet warning - */ -var textChanged = false; - -function svchk(){ - if(textChanged){ - return confirm(notSavedYet); - }else{ - return true; - } -} - -/** - * global variable for the locktimer - */ -var locktimerID; - -/** - * This starts a timer to remind the user of an expiring lock - * Accepts the delay in seconds and a text to display. - */ -function init_locktimer(delay,txt){ - txt = escapeQuotes(txt); - locktimerID = self.setTimeout("locktimer('"+txt+"')", delay*1000); -} - -/** - * This stops the timer and displays a message about the expiring lock - */ -function locktimer(txt){ - clearTimeout(locktimerID); - alert(txt); -} - /* * This sets a cookie by JavaScript * @@ -424,6 +302,8 @@ function fnt(id, e, evt) { * Add the edit window size controls */ function initSizeCtl(ctlid,edid){ + if(!document.getElementById) return; + var ctl = document.getElementById(ctlid); var textarea = document.getElementById(edid); diff --git a/lib/scripts/spellcheck.js b/lib/scripts/spellcheck.js index d47430c31..308b3dd1f 100644 --- a/lib/scripts/spellcheck.js +++ b/lib/scripts/spellcheck.js @@ -171,25 +171,25 @@ function ajax_spell_class(){ case 'stop': ajax_spell.buttonObj.onclick = function(){ ajax_spell.resume(); return false; }; ajax_spell.buttonObj.title = ajax_spell.txtStop; - ajax_spell.buttonObj.accesskey = ''; + ajax_spell.buttonObj.accessKey = ''; ajax_spell.imageObj.src = DOKU_BASE+'lib/images/toolbar/spellstop.png'; break; case 'noerr': ajax_spell.buttonObj.onclick = function(){ajax_spell.setState('start'); return false; }; ajax_spell.buttonObj.title = ajax_spell.txtNoErr; - ajax_spell.buttonObj.accesskey = ''; + ajax_spell.buttonObj.accessKey = ''; ajax_spell.imageObj.src = DOKU_BASE+'lib/images/toolbar/spellnoerr.png'; break; case 'run': ajax_spell.buttonObj.onclick = function(){return false;}; ajax_spell.buttonObj.title = ajax_spell.txtRun; - ajax_spell.buttonObj.accesskey = ''; + ajax_spell.buttonObj.accessKey = ''; ajax_spell.imageObj.src = DOKU_BASE+'lib/images/toolbar/spellwait.gif'; break; default: ajax_spell.buttonObj.onclick = function(){ ajax_spell.run(); return false; }; ajax_spell.buttonObj.title = ajax_spell.txtStart+' [ALT-K]'; - ajax_spell.buttonObj.accesskey = 'k'; + ajax_spell.buttonObj.accessKey = 'k'; ajax_spell.imageObj.src = DOKU_BASE+'lib/images/toolbar/spellcheck.png'; break; } diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css index 7bc6085f2..7b84ea614 100644 --- a/lib/tpl/default/design.css +++ b/lib/tpl/default/design.css @@ -637,6 +637,10 @@ div.search_quickhits { opacity: 1; } +#sizectl img { + cursor: pointer; +} + /* ---- Admin --- */ div.acladmin label { -- GitLab