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