From 315e43fa3061541d05bec277d4a66bc81e164f5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Bernigaud?= <come.bernigaud@laposte.net>
Date: Wed, 8 Jan 2014 17:17:04 +0100
Subject: [PATCH] Fixes: #2926 Using more and more icon naming spec

---
 contrib/smarty/plugins/function.iconPath.php  |   9 +-
 html/class_passwordRecovery.inc               |   2 +-
 html/geticon.php                              |  39 ++++++
 html/images/info_small.png                    | Bin 936 -> 0 bytes
 html/images/lists/up.png                      | Bin 862 -> 0 bytes
 html/images/login-head.png                    | Bin 4119 -> 0 bytes
 html/images/login.png                         | Bin 14375 -> 0 bytes
 html/index.php                                |   6 +-
 html/main.php                                 |   8 --
 .../icons/16/actions/document-export.png      |   1 +
 .../icons/16/actions/document-new.png}        | Bin
 .../icons/16/actions/document-save.png        |   1 +
 .../default/icons/16/actions/edit-copy.png}   | Bin
 .../default/icons/16/actions/edit-cut.png}    | Bin
 .../default/icons/16/actions/edit-delete.png} | Bin
 .../default/icons/16/actions/edit-paste.png}  | Bin
 .../default/icons/16/actions}/export.png      | Bin
 .../default/icons/16/actions/go-first.png}    | Bin
 .../default/icons/16/actions/go-home.png}     | Bin
 .../default/icons/16/actions/go-previous.png} | Bin
 .../themes/default/icons/16/actions/go-up.png |   1 +
 .../default/icons/16/actions}/save.png        | Bin
 .../icons/16/actions/system-search.png}       | Bin
 .../icons/16/actions/view-refresh.png}        | Bin
 .../icons/16/actions/view-sort-ascending.png} | Bin
 .../16/actions/view-sort-descending.png}      | Bin
 .../default/icons/16/apps/internet-mail.png   | Bin 0 -> 635 bytes
 .../default/icons/16/apps/office-calendar.gif | Bin 0 -> 991 bytes
 .../icons/16/mimetypes/application-pdf.png    | Bin 0 -> 3306 bytes
 .../default/icons/16/mimetypes/text-csv.png   | Bin 0 -> 3111 bytes
 .../default/icons/16/status/dialog-error.png} | Bin
 .../icons/16/status/dialog-information.png    | Bin 0 -> 829 bytes
 .../icons/16/status/dialog-warning.png}       | Bin
 .../default/icons/16/status}/locked.png       | Bin
 .../default/icons/16/status/object-locked.png |   1 +
 .../icons/16/status/object-unlocked.png       |   1 +
 .../default/icons/16/status/task-complete.png | Bin 0 -> 661 bytes
 .../default/icons/16/status}/unlocked.png     | Bin
 .../icons/22/actions/application-exit.png}    | Bin
 .../home.png => icons/22/actions/go-home.png} | Bin
 .../default/icons/22/status/dialog-error.png} | Bin
 .../icons/22/status/dialog-information.png}   | Bin
 .../icons/22/status/dialog-question.png       |   1 +
 .../default/icons/32/status/dialog-error.png} | Bin
 .../icons/32/status/dialog-warning.png}       | Bin
 .../default/icons/32/status/object-locked.png | Bin 0 -> 1239 bytes
 .../default/icons/48/apps/system-users.png}   | Bin
 .../icons/48/places/network-server.png}       | Bin
 .../icons/48/places/user-identity.png}        | Bin
 .../icons/48/status/dialog-password.png}      | Bin
 .../scalable/apps/fusiondirectory.png}        | Bin
 html/themes/default/images/accountexpired.png | Bin 1734 -> 0 bytes
 html/themes/default/images/sign_out.png       | Bin 1330 -> 0 bytes
 html/themes/default/index.theme               | 120 ++++++++++++++++++
 html/themes/default/style.css                 |  23 ----
 ihtml/themes/default/accountexpired.tpl       |  73 -----------
 ihtml/themes/default/framework.tpl            |   6 +-
 ihtml/themes/default/islocked.tpl             |   4 +-
 ihtml/themes/default/msg_dialog.tpl           |  10 +-
 ihtml/themes/default/password.tpl             |   2 +-
 ihtml/themes/default/recovery.tpl             |   4 +-
 ihtml/themes/default/remove.tpl               |   2 +-
 ihtml/themes/default/setup_header.tpl         |   2 +-
 include/class_CopyPasteHandler.inc            |   4 +-
 include/class_IconTheme.inc                   |  39 ++++--
 include/class_SnapShotDialog.inc              |   2 +-
 include/class_config.inc                      |   2 +
 include/class_listing.inc                     |  35 ++---
 include/class_management.inc                  |   2 +-
 include/class_msg_dialog.inc                  |   2 +-
 include/exporter/class_cvsExporter.inc        |   2 +-
 include/exporter/class_pdfExporter.inc        |   2 +-
 include/functions.inc                         |   2 +-
 include/php_setup.inc                         |   6 +-
 include/select/groupSelect/group-filter.tpl   |   2 +-
 plugins/admin/departments/dep-list.xml        |   6 +-
 .../admin/groups/class_groupManagement.inc    |   2 +-
 plugins/admin/users/class_userManagement.inc  |   2 +-
 plugins/config/class_configInLdap.inc         |   2 +-
 79 files changed, 257 insertions(+), 171 deletions(-)
 create mode 100644 html/geticon.php
 delete mode 100644 html/images/info_small.png
 delete mode 100644 html/images/lists/up.png
 delete mode 100644 html/images/login-head.png
 delete mode 100644 html/images/login.png
 create mode 120000 html/themes/default/icons/16/actions/document-export.png
 rename html/{images/lists/new.png => themes/default/icons/16/actions/document-new.png} (100%)
 create mode 120000 html/themes/default/icons/16/actions/document-save.png
 rename html/{images/lists/copy.png => themes/default/icons/16/actions/edit-copy.png} (100%)
 rename html/{images/lists/cut.png => themes/default/icons/16/actions/edit-cut.png} (100%)
 rename html/{images/lists/trash.png => themes/default/icons/16/actions/edit-delete.png} (100%)
 rename html/{images/lists/paste.png => themes/default/icons/16/actions/edit-paste.png} (100%)
 rename html/{images/lists => themes/default/icons/16/actions}/export.png (100%)
 rename html/{images/lists/root.png => themes/default/icons/16/actions/go-first.png} (100%)
 rename html/{images/lists/home.png => themes/default/icons/16/actions/go-home.png} (100%)
 rename html/{images/lists/back.png => themes/default/icons/16/actions/go-previous.png} (100%)
 create mode 120000 html/themes/default/icons/16/actions/go-up.png
 rename html/{images => themes/default/icons/16/actions}/save.png (100%)
 rename html/{images/lists/search.png => themes/default/icons/16/actions/system-search.png} (100%)
 rename html/{images/lists/reload.png => themes/default/icons/16/actions/view-refresh.png} (100%)
 rename html/{images/lists/sort-down.png => themes/default/icons/16/actions/view-sort-ascending.png} (100%)
 rename html/{images/lists/sort-up.png => themes/default/icons/16/actions/view-sort-descending.png} (100%)
 create mode 100644 html/themes/default/icons/16/apps/internet-mail.png
 create mode 100644 html/themes/default/icons/16/apps/office-calendar.gif
 create mode 100644 html/themes/default/icons/16/mimetypes/application-pdf.png
 create mode 100644 html/themes/default/icons/16/mimetypes/text-csv.png
 rename html/{images/small_error.png => themes/default/icons/16/status/dialog-error.png} (100%)
 create mode 100644 html/themes/default/icons/16/status/dialog-information.png
 rename html/{images/small_warning.png => themes/default/icons/16/status/dialog-warning.png} (100%)
 rename html/{images/lists => themes/default/icons/16/status}/locked.png (100%)
 create mode 120000 html/themes/default/icons/16/status/object-locked.png
 create mode 120000 html/themes/default/icons/16/status/object-unlocked.png
 create mode 100644 html/themes/default/icons/16/status/task-complete.png
 rename html/{images/lists => themes/default/icons/16/status}/unlocked.png (100%)
 rename html/{images/logout.png => themes/default/icons/22/actions/application-exit.png} (100%)
 rename html/themes/default/{images/home.png => icons/22/actions/go-home.png} (100%)
 rename html/{images/small-error.png => themes/default/icons/22/status/dialog-error.png} (100%)
 rename html/{images/info.png => themes/default/icons/22/status/dialog-information.png} (100%)
 create mode 120000 html/themes/default/icons/22/status/dialog-question.png
 rename html/{images/error.png => themes/default/icons/32/status/dialog-error.png} (100%)
 rename html/{images/warning.png => themes/default/icons/32/status/dialog-warning.png} (100%)
 create mode 100644 html/themes/default/icons/32/status/object-locked.png
 rename html/{plugins/groups/images/icon.png => themes/default/icons/48/apps/system-users.png} (100%)
 rename html/{images/ldapserver.png => themes/default/icons/48/places/network-server.png} (100%)
 rename html/{plugins/users/images/icon.png => themes/default/icons/48/places/user-identity.png} (100%)
 rename html/{images/password.png => themes/default/icons/48/status/dialog-password.png} (100%)
 rename html/themes/default/{images/fd_logo.png => icons/scalable/apps/fusiondirectory.png} (100%)
 delete mode 100644 html/themes/default/images/accountexpired.png
 delete mode 100644 html/themes/default/images/sign_out.png
 create mode 100644 html/themes/default/index.theme
 delete mode 100644 ihtml/themes/default/accountexpired.tpl

diff --git a/contrib/smarty/plugins/function.iconPath.php b/contrib/smarty/plugins/function.iconPath.php
index 31ae49ef2..1d6e4db01 100644
--- a/contrib/smarty/plugins/function.iconPath.php
+++ b/contrib/smarty/plugins/function.iconPath.php
@@ -5,14 +5,11 @@ function smarty_function_iconPath($params, &$smarty)
   $config = session::global_get('config');
 
   /* Set theme */
-  $theme = "default";
+  $theme = IconTheme::$default_theme;
   if (isset ($config)) {
-    $theme = $config->get_cfg_value("theme", "default");
-    if (!isset(IconTheme::$themes[$theme])) {
-      $theme = 'default';
-    }
+    $theme = $config->get_cfg_value("theme");
   }
 
-  return IconTheme::$themes[$theme]->FindIcon($params['context'], $params['icon'], $params['size']);
+  return IconTheme::findThemeIcon($theme, $params['context'], $params['icon'], $params['size']);
 }
 ?>
diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc
index a83770aa9..ada3ee65a 100644
--- a/html/class_passwordRecovery.inc
+++ b/html/class_passwordRecovery.inc
@@ -307,7 +307,7 @@ class passwordRecovery {
     /* Check for old files in compile directory */
     clean_smarty_compile_dir($smarty->compile_dir);
 
-    $smarty->assign('password_img', get_template_path('images/password.png'));
+    $smarty->assign('password_img', 'geticon.php?context=status&icon=dialog-password&size=48');
     $smarty->assign('date', gmdate("D, d M Y H:i:s"));
     $smarty->assign('params', "");
     $smarty->assign('message', "");
diff --git a/html/geticon.php b/html/geticon.php
new file mode 100644
index 000000000..4ab377021
--- /dev/null
+++ b/html/geticon.php
@@ -0,0 +1,39 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2013  FusionDirectory
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* Basic setup, remove eventually registered sessions */
+@require_once("../include/php_setup.inc");
+@require_once("functions.inc");
+@require_once("variables.inc");
+
+session_cache_limiter("private");
+session::start();
+session::global_set('errorsAlreadyPosted', array());
+
+$theme = '';
+if (session::global_is_set('config')) {
+  $config = session::global_get('config');
+  $theme  = $config->get_cfg_value('theme');
+}
+$src    = IconTheme::findThemeIcon($theme, $_GET['context'], $_GET['icon'], $_GET['size']);
+$size   = getimagesize($src);
+header("Content-Type: ".$size['mime']);
+echo readfile($src);
+?>
diff --git a/html/images/info_small.png b/html/images/info_small.png
deleted file mode 100644
index 0d826bbf3ce4cfa5fa6bbbd1a926b6897af14c35..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 936
zcmV;Z16TZsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3lRVS3lRZ-WM7d0000McNliru(+UX|7bQ9B92o!r03CEi
zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00Rt3L_t(|+GUeXXk29&
zg`e;5&Ye3m$)rilq(+TRjHFsqtJYRfCrS&Ix=_=FE~G_-ZURN?!j-FR6bT3-h+PyB
zOSDqdU^c~IwYVs)MTHbvL#9nSA%8PXCYiZ&@AtV#6Iwm1m&4)kayUouAAB(~e&p=M
z+5X&?<UlQqk^o987R%MIp53wK%+WXYeS4=~Y#cXk&gYJO^yAl$^>*b4_Vr=o@Gj$O
zBslfcWhSQzU!ER5{N@I)0B#f)S_eNI8#^+P-}~Io4&pc>VKiG?Q&<OKJw_{dvbP=O
zXZuWU_rS#OXFl6BDA-3wUwYxGy-g|2(sG^BN=VNGS+eN_Dc^AE${e>UF{R~@=8Q*;
z)ID80p3h%8_uWbT@rkil|C|wz3+K2#w+etmaQW&Ydmd@!?|&93%vDfIgL43M=F(i8
z$mG8nJ>M=~e)rTTJ>A`d>4aQQL<nN*aDY(~Yb{br0HP?SxUj}Vp~TWkNKm_eT&Gk1
zV0pF9QpF;K!~uJHTiL%WN8oF;6uk5K1&T{`ri#ndqZsKN2+4yzU2p5c{3@CH8dj`-
zAf;sFw;5stM-ObH8pd3>Rw8l=v_?ybvkvDRp^y*j5W#f04pJbb1R+2OuH4+n1DsMw
z;eoX{Yr$Et4&f<et}S!5ZZxq}#8P3E2CYG<&7v4jqdkK#24OT(Yh1#RR&hZ#%jkQn
z1X3G3V@UfRjlM@Zp*O3R^)-!wM>;Tg3GcQM+?#Nt^6-m2A9OWDWCD+D%Fq-TvVlkH
zwt*Co4Gc}Gb-uyZq>_g1Ev|Cx^{0nq{+aD7Pqgq}TgK6t^k@t``Z^nUZFdWE<u%GH
zA;({Nh$df<O?osZYHSOZ5rw}F=GvO4H@7f!;+K(YE6GC*nMQ1EkuE}t_3p&h5hE}O
zpT+qimC|zm>7fJTcZ~^P_~g$Ar_1t(_O17!jE7bVa72-%9@Utiogutc>>qyr(D?t>
zxPi&Z$?kK1%)T`>Tiu^Y2fF~Owc4*8t>$cgXYSLE`#b0E)c*?=RUdD@rmGhK0000<
KMNUMnLSTaJnX07#

diff --git a/html/images/lists/up.png b/html/images/lists/up.png
deleted file mode 100644
index f258c112f9ce54bfc898fa5e4a48b19a64f93a29..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 862
zcmV-k1EKthP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3k?7O3k?D72f!=<000McNliru(+LR^6b)t>UmE}b0_#ac
zK~#9!g_BKaTxA%ApYOYOX6}r4W;&BLGYO;#&0u1swVe{7wPaxzLe!OY;SW@V&}N~y
zbm2k}3*C3+#emY53gV_NY*nlhp-tK(MQKOUke{Y@GR^d6?j)D_X6}!R(1ElCUwAh!
z=bXhk?-4v>ietA72!;rQ0)zsBdEKv1O<Kp?C$ZuQq6y+Nw8$wLO{IG>EfNure<}un
zTCWM;{Z9AoFRxp#Ek7kt9J`fA$g8=|j)4=eraAh8Mk=8Jpjsi*cU{JR-C%C9vKIHt
zZ~yt#$knz$actH^$Q#AI-2<PzVUUdL08ExP0C;)O1fb;ye0|yG^5kmORCo6MG5+2I
z4WMi2<mp_l^UaS(3<MHa1^m6}a(uXhy}b#3zF8v{k*H?KU{8#@t6HL5Bl&t!yP_3O
z-7wH%7v4IWHc|<2mCx#<7RQG>0C-eyu~u*4Dt~Jm0qMBM&G~S^Z*H8^fuX2jrZaJ$
zhwA}GM7GIgyU8!pwYJI5rpJ%Bvp6b)jD@Dt>_4Idg{&!g=y>$*inYlA`An4ekL}tP
z+u{B2(KjF?214ou35cezv0T+iB@O;>4)%c%TkZ=&sY5Vdb3;nios@opTsGvT-mP?J
z7GY*-yTI%c=n@*9A{w|Wy6)GfJhfhvBA-UUrxydxyd&AaTX3)s#(#fI3emLyDZtRd
zY1o@tzci!WpZ>PhedvSEWLzBX$p)ljimAB<&v)zWOlgc9fa|wyIuZ>shGK`Is5>^Q
zcJGHha^ialp!@b0l}dR&8aU*W4f4qb7k*n~p{!UatM)CQY!D3`Dyt7xa^AJGK(+nK
zuZ&*mZ$`SV94Mss4DL1&Vp~lJ!;sSQ2D5YaO1?F5GB55-SeE5%Lk)j;zRQjDex67?
z_ikS<YVJtJ09dap7R${|<=U5W-nFwiZQ(D=vYe;d2rxQ28olSe*zIWjM}*W1f>4UU
oUCH{TnNEG_U!ZDPR`W6bKd~t^+_O;n=Kufz07*qoM6N<$f)k{b)&Kwi

diff --git a/html/images/login-head.png b/html/images/login-head.png
deleted file mode 100644
index 45e3c35289c964c4ff770145f16da92f2518fc6d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4119
zcmW+(cT`hJAAK(m5+H#DP>O^ks30O@LXaXQ2{vqi4Ou_eBvf5dibzo;36Ubb2!f~t
z#kR77u6}|72}L@DUEQ^y0wSO^=?Rd$_r>pznK^UL%$zfK?!CV|m%TlAYHO|10sugJ
zm&djPs*(D$X`og85!7O`YETPi?PCEzMXQ5)>UY)LIC8sh<iXIO$Y^dvAixR;^$Voz
zI?W9ZJP^nYhz)NGbO8YTgI(KLhhjeXDG-DKnMqn(Q;r<pcRRHxC#MKuV6U!UV{*^b
z!68{4<6MlU>kE6tV#EkWl#Np(Z!5@sb#b-x(}T%r;`kcI0wV2Q!>;=r)7jZHvpoAY
z4bi9uuR4RMlpH<$iP2|tI=pN#T{6IXQg&;{?|1K(rC)nO5k9#E2&*jDK^SLxYY>{C
zP>zusiyhcTlOJQd!sbU0CUqE2^6H{x%^yk_?CvFaqU}xv!{#DXop%Tis1e?idfq%5
z;s%ZA9P~bN>dEu{x&O6W8BFL8_UCZ@{N&1Id}Bo)Vk9ZW+mjPm5#{B~KVigQKDW58
zv29Rh6m`Z~Ha0r+@T@paY(LOA@><5%LbAVrd|-74v}$QWF>cLUI(_{Qz1mNQj4mZQ
z8rNM!x~4{C>?ARB(1^u_$pXPijc-AsU|5NHO~F@EX|`eEk8R@+IFH*m*?}wm*R%>A
z{gmGsU6Of2?dY_=t9@9tK85eGz<&|+fMSvrBhGsmTT`58-Pp(A8OOt@>T8$5@^QwK
zK}2Axz<&eL_XiOr^n^u&$`GXzo2g4W<C8QSJW01^SB-s6!v`N^#5+Y3PyCG!@am6P
z#{_b|g6A?0=vV}0zTfe00d3M#3nv!TYioJ$;G9TskpK(8+V_g(<S7Xv=H+}7Yq+Io
z&k@&TcQrzDO%I%L#SW%1a(H>MRmu*%o_rovfdNn{i2@JN?<=J8k{t8H%md~-wjSmW
z%=cE{creYDN)xz~zQts(lSC;n>+*R>X=dUU1vwpt!sq%Jk}{nu!3qRp4a1)p=v}|C
z&?~n)Esi-bp2GpLIZI>G<Q68x8#rso1av1r(V%vb)7lqJ+p3M?l}lYyL%pG*!6E^O
zp9AQY|Ih`dQjOg+m1U65>1`3<%6l9<{{#hnnGOqME)5`|VG+66dYqWBt9>~o|8a)r
zTW;s^lj<P9>#wX;rw@VVi2)WCQI{h`LMJ0ZQ0+yTwoyYmvjs}qMS+!BnhltB&k<Zm
zC$E$w$AmjlpVr?5|LXUZYwz137I-d0p6(Pp&=J7tS8zF?59Jurl=t3O%^vgz57ops
z4%w?n(+)|(4uk(5gb_i(Mdgfe;FGgY*b8L2BynJbZGooMv2nW_7{-piFzq9+qit%&
z)dbo=Z!JaobucZcR*2)JK(_!?Q_z3hVeNW>O9Nm{sJn={7wv;KSnuW;Sm972brTG$
zmp=vw%x$s!oXZ{PZ`i2pJM6l+U=HNt-N%FS@Pt+C;eaWcyj^6mm@LTnPHw!@vKN;p
zOQqH<);CDn)%Mu(>UGdgq$_c7g6o{gICvK!*stl)rz}K^FiaXIb>9MlT44URnZRRq
z_p|~Oeo7}q%%tq(A6R-T?K7@J{QUZd12`H~q>FH7@hZ!QcnI}aNPlc9b4W^)vFV-8
ztx`$bQkEcp+QIHU-(|*R6(kCPcDWI7a}u6M5)2QSWGB5b4oN3kF*_Dn@%2MLHTO4E
zew@;QC<3`LvhRk%7YcTg^$`m+<E#PtjEy~qX)AEWXl=GIuu0;)_QE|UiG$u<6hOY!
zN@!S<^CC!rjk2_)NOa)j6!oyX=oucO(9{tz#5@`m^dFERY>{3HRPxi2Eb$8EY}WTi
zLym<%+`{>zqceL*+T1Uac1s!>&>^<egbh^hU%>@{y0s%^*7oZKo?o^h+*$bpwWjg5
zA<y{pMbO}e*sM*1I4S|S0dj3mdr@{UXyI_ihZC}!O7}<&qu+0Rf_#pg>;8bR;HOSq
zaR<O{S1^UfZg$_>W}n9%wLL38`dGCn4A^7JLBq4;1L+AHY{QJztk1CaMxi%v=O*F)
z3dMOQF^nc%m!(tRh8Rh~6-7p$F9rn2r-hm!R^)YrvvgaHX_{?{CKWnqfZh-KplRGF
zbo}uGF?PXP3>=b^QpAH1CO_FP2;PL>bj;T{`+=GCL3>wM^VF<E*}s87f=f$0kv|hf
zk@Bq)c#<swP2cM2>BscK69||3M&2?tIKoa+c_>vOpErDy3yk@zj|O83l*Euu+&B~W
z8<}QH7fh&pTgKb9U%>mp;3?B9Y#|NGEf>|+{4A>(T2^6^(P5rq34dlYpNNletU^K0
zh0M~dCbW|-(WD&L8G^%o98br6jO%a4+WnVbC&x^?LFM&Yr=~#q+&wa{?&2bhRgv|}
zsUS#=pr5mHx^EMsNSbi1m4~oC$dFP^{Vyl72hH+VL6!!hl|<@mW)q91cFUMGpgyNf
zT@=u$p)h6u$>z&3SCAI9zh)<Av+hZc*Dj;y0Z)~bn$80&R$t&w5MxpVt`ZFzI)tYG
zrj%)~|E7Mgwdh+yPb*2S8Mh6W%KELSsD2z_#=+gQdw4Lc)Y`pI?)Ot53zE^=;LM9i
zM<n{#ZFhg*`d)aeJ9$`+cw_jcs0c@Fid5?y7569Q0W?$ei$FIadwHpN;NaVua~S48
z(nCe^PXT;@Owaxs{}P__*Dfp7{B01yT<9lPeHGZ<6KK0pcU-dCK-@~~Obv5%@$nrX
zp)UaUd3{C2FT0P|O{;y#ZtPv9uEO0F*gdm8gRWD%)a+>Z(GLB5i!mW~fMGr8?lOn}
z*c60XXC4-Tx{zZ0>L8(o-sp;L$9TELy}a=YBiyy8^(s@Ld&E#5t#bVpcq%~uC#wMt
z+)R$A5<v$%j3h^ag%ldt*n`vFbu>E?ArrS!q!K?ZCut?$Rk_$w^1M3ZU{Fn*(qP5X
zrm1J{TopDRGeGNu<;)V^+ZUYwd?~KrWx~qk5k}eU40*pEYOC%SU5mAyxM=D}{k?lV
z{L&Fd+_KWDBJgP6@TX)OFe6s&4+*RnK~R-8XRG?(DI0C7UsRMIIqu$bHRDEJMp3@@
zJ6FK|Pr*r(OGP4coi$Gj)nEHcN*FvIBX)klGisl#^H)q3TV3muFbR(KTWV4%v8{?g
z)un5kzV<o0^x<m54rzyZV|#OVdlPC#qcRO$Udw!DRTdS5a#sJM9(ERbcXwGf(((KU
zIrHYrc&eNDd{>JX`zFeq^=s>qZ>HztNPq@qht|$v<}=-rs!CC0=(#iHNx4t&6jq8}
z0Gpmu>G%IkUxDS&3kzZ1B0M`-EF+g(f4R_qRQlA(S<0?nRJ+DyGxNGO9cWHe0iUC_
zHEnN?#U^$oFC~i4<~+Vt^VCFIB<u{4k^!tCCl@uGCr%y3vFFR-V^xtuoISxE4LiL^
zLLzK%^iVwCqDWkp*$Ju<HoHiuCqD#*b1pFQ6Eo;(SF`ry?)1nO$ePvBnXV>$<uMQ1
za>s@%19`bRjc;XSSR4Z@+CTLkx%-GM4tRZgXY^-1tFh@=)gxLiNIHv5z9P!yzWVxl
zlG)m(7K)8ct3)d8k~FkPB{37Lp~lmkx;H)k9PhVW`RsT7#$Zm?*hH@vuA(navCt3S
zxcTgqq36r6fv+a+<~lafC^Z5WQs*qqoy%qL;G13D-NRZDRb^#VC|i3Jpef*~96=6S
z?e8yN4b?4jv-)+N&T!aQZrr#bD7suUhA{4IVTdgs1xrciYR}IrOlhwywy560V#ZV~
zm~F}GtCeJj=NA}&&Lq24vWZ@NQi;T8s;@+B91orH?eT>w@2frgp_*Lq?-L`a*;h^K
zMr+qzGWt4{pQf*;^@J6hLX`bKV#*h1cTQHYd8_Y~ZBwN{b$)F*yMO;l&a_6eXbI^{
zj>hrGi~#xafUDyPgw>J?1FooaC-jM2|3lv18#B{7rU9z~E`RP^3R*?I0*r;{u|RmD
zS9+Aobwlgwf>R!*mWL2{dwLoS{qrQ0-AJptlWI4GJ+N%@PE63%RcpRP%@PP=Yaczj
ztQV=4a6;u+YcFs<Je}`k#4AG7@17%thnt;9K@xR_-B-m-QRBe!VmH)lc+Ak7wxcXT
z0J?=ztgJNBHN($ss;I<?_>}drst{V};k8Aaz%QLxYh?w5jM9Z$N!5J*n<J7f<I+v&
zyBL{Kp`a~Q^P6rE=Wi}L%2yH*hMOjsm|%s4g%n|G>W-?6jE6ejDS5s>ane6oDlS-D
zmXU{u#E^6sm+Sp@_zj<#+c&ndIwivp*2DxFyXu82m)^9kM45IkjB94Yjgt26c8ON`
zyKEX3i+xA0sre}JB^ZQ-Pw!i8ZlF@a<)=N!1Q_`gB$FLtjssUhIHfufj!pZ^aUsVf
zw`L~xpck@!7{B8oLH+V6fncyV7_B36T(`~yq5_gv8%<hobG)d+lOT8;y?L|tk&PRn
zK+)r4O;wsdT}dMQ!NBqjXu|ez?+?j|E|w?x?s}Krzw<SISM6xzc#{#>FJH<RnEHOH
z<S82@u;w>o5r)5#^bVqANvN%K3Vv!T49Lr^tjzMdPk!nfXz|tJ|0b?fZiwW+Dlu(!
z_xPa1-({7m;v}}mtQ<$YK8_nl5ZlU6HQf?ax`hvi#8uAZ3s(B-JqG3*+)c_z<G)0C
zq)Yq~v$E1yd-k;GUQ5>~@KDj_DMpouhrsSo<{q<Be9;ZiNn@B`V-tn;;b{CB2e(S%
zWcHP{+H;i3OMYN83QJ{F0{&@<`Nrj#6{o13?d>=`V8a=2>*#pU+xzmAJDvXdJgBN$
zGm<OoPZjYq7m|HjQJYS3b|njiD?^-oNk+MyUSxV@+#)WVy2h@6<fhi#92!RACZ117
zOw_y{&AdU@C^07LCnVGmb#%^nG9Sijny=vlerC3FL;S=HUCU8c8#;HgNMzQc)l79V
z@OB=VUW2ya3^jMQfs@B=LDMcE9ZVwk8NrZAtmrr6WADK{qx)iLRVBPEV>kj5;iAO%
z(BZ>>35Oy3IMWL%Y^~6$(s4=$7jEPIO+eJd(tQ6GIFbsl^X+DTuyNMUL&3DYoV}G`
z-ipdH)vpjpg<R+0jSv=NcUKicI5e%xnnCy9r}y)7^79Yo<?JVzU%>+?YS1f7pn>YW
z=c>WP2I8j|a-<~k_4XqJ_eT<=RuWMTYrjSuv{~HDf5SFk+BkGNG@1HFV>S3==kg(b
z)OfT`<2gS|_3QdZ?rBD5`uItV{7pgcskNS2NnLC5R<7Si8#(<w=zHGC27bx}o{!5x
z`~BkA5o{%h?(u|+5zzxL>!0~y9-u$n)_<!^eGeMQNK0tm$%9)4yj53jhlIv}ni241
YKx@UNf*McN&mP#d-E-R`cTU3p0JG+L!2kdN

diff --git a/html/images/login.png b/html/images/login.png
deleted file mode 100644
index 52aed85eae886380d5545431f36613a205e4658b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14375
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
B7LWh{

diff --git a/html/index.php b/html/index.php
index 6444932c9..d57fb5617 100644
--- a/html/index.php
+++ b/html/index.php
@@ -43,9 +43,9 @@ function displayLogin()
   }
   $smarty->assign ('date', gmdate("D, d M Y H:i:s"));
   $smarty->assign ('username', $username);
-  $smarty->assign ('personal_img', get_template_path('images/login-head.png'));
-  $smarty->assign ('password_img', get_template_path('images/password.png'));
-  $smarty->assign ('directory_img', get_template_path('images/ldapserver.png'));
+  $smarty->assign ('personal_img', "geticon.php?context=places&icon=user-identity&size=48");
+  $smarty->assign ('password_img', "geticon.php?context=status&icon=dialog-password&size=48");
+  $smarty->assign ('directory_img', "geticon.php?context=places&icon=network-server&size=48");
   $smarty->append ('css_files',  get_template_path('login.css'));
 
   /* Some error to display? */
diff --git a/html/main.php b/html/main.php
index 31eef91df..65cbfc268 100644
--- a/html/main.php
+++ b/html/main.php
@@ -62,7 +62,6 @@ if ($_SERVER['REMOTE_ADDR'] != $ui->ip) {
   exit;
 }
 $config = session::global_get('config');
-IconTheme::loadThemes('themes');
 
 /* If SSL is forced, just forward to the SSL enabled site */
 if (($config->get_cfg_value("forcessl") == "TRUE") && ($ssl != '')) {
@@ -299,13 +298,6 @@ if ($ui->ignore_acl_for_current_user()) {
 } else {
   $smarty->assign ("username", $ui->username);
 }
-$smarty->assign ("go_base", get_template_path('images/dtree.png'));
-$smarty->assign ("go_home", get_template_path('images/gohome.png'));
-$smarty->assign ("go_out", get_template_path('images/logout.png'));
-$smarty->assign ("go_top", get_template_path('images/go_top.png'));
-$smarty->assign ("go_corner", get_template_path('images/go_corner.png'));
-$smarty->assign ("go_left", get_template_path('images/go_left.png'));
-
 $smarty->assign ("menu", $plist->menu);
 $smarty->assign ("plug", "$plug");
 
diff --git a/html/themes/default/icons/16/actions/document-export.png b/html/themes/default/icons/16/actions/document-export.png
new file mode 120000
index 000000000..9675ffeeb
--- /dev/null
+++ b/html/themes/default/icons/16/actions/document-export.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/16/actions/export.png
\ No newline at end of file
diff --git a/html/images/lists/new.png b/html/themes/default/icons/16/actions/document-new.png
similarity index 100%
rename from html/images/lists/new.png
rename to html/themes/default/icons/16/actions/document-new.png
diff --git a/html/themes/default/icons/16/actions/document-save.png b/html/themes/default/icons/16/actions/document-save.png
new file mode 120000
index 000000000..f814fc19c
--- /dev/null
+++ b/html/themes/default/icons/16/actions/document-save.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/16/actions/save.png
\ No newline at end of file
diff --git a/html/images/lists/copy.png b/html/themes/default/icons/16/actions/edit-copy.png
similarity index 100%
rename from html/images/lists/copy.png
rename to html/themes/default/icons/16/actions/edit-copy.png
diff --git a/html/images/lists/cut.png b/html/themes/default/icons/16/actions/edit-cut.png
similarity index 100%
rename from html/images/lists/cut.png
rename to html/themes/default/icons/16/actions/edit-cut.png
diff --git a/html/images/lists/trash.png b/html/themes/default/icons/16/actions/edit-delete.png
similarity index 100%
rename from html/images/lists/trash.png
rename to html/themes/default/icons/16/actions/edit-delete.png
diff --git a/html/images/lists/paste.png b/html/themes/default/icons/16/actions/edit-paste.png
similarity index 100%
rename from html/images/lists/paste.png
rename to html/themes/default/icons/16/actions/edit-paste.png
diff --git a/html/images/lists/export.png b/html/themes/default/icons/16/actions/export.png
similarity index 100%
rename from html/images/lists/export.png
rename to html/themes/default/icons/16/actions/export.png
diff --git a/html/images/lists/root.png b/html/themes/default/icons/16/actions/go-first.png
similarity index 100%
rename from html/images/lists/root.png
rename to html/themes/default/icons/16/actions/go-first.png
diff --git a/html/images/lists/home.png b/html/themes/default/icons/16/actions/go-home.png
similarity index 100%
rename from html/images/lists/home.png
rename to html/themes/default/icons/16/actions/go-home.png
diff --git a/html/images/lists/back.png b/html/themes/default/icons/16/actions/go-previous.png
similarity index 100%
rename from html/images/lists/back.png
rename to html/themes/default/icons/16/actions/go-previous.png
diff --git a/html/themes/default/icons/16/actions/go-up.png b/html/themes/default/icons/16/actions/go-up.png
new file mode 120000
index 000000000..0613cb497
--- /dev/null
+++ b/html/themes/default/icons/16/actions/go-up.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/16/actions/go-previous.png
\ No newline at end of file
diff --git a/html/images/save.png b/html/themes/default/icons/16/actions/save.png
similarity index 100%
rename from html/images/save.png
rename to html/themes/default/icons/16/actions/save.png
diff --git a/html/images/lists/search.png b/html/themes/default/icons/16/actions/system-search.png
similarity index 100%
rename from html/images/lists/search.png
rename to html/themes/default/icons/16/actions/system-search.png
diff --git a/html/images/lists/reload.png b/html/themes/default/icons/16/actions/view-refresh.png
similarity index 100%
rename from html/images/lists/reload.png
rename to html/themes/default/icons/16/actions/view-refresh.png
diff --git a/html/images/lists/sort-down.png b/html/themes/default/icons/16/actions/view-sort-ascending.png
similarity index 100%
rename from html/images/lists/sort-down.png
rename to html/themes/default/icons/16/actions/view-sort-ascending.png
diff --git a/html/images/lists/sort-up.png b/html/themes/default/icons/16/actions/view-sort-descending.png
similarity index 100%
rename from html/images/lists/sort-up.png
rename to html/themes/default/icons/16/actions/view-sort-descending.png
diff --git a/html/themes/default/icons/16/apps/internet-mail.png b/html/themes/default/icons/16/apps/internet-mail.png
new file mode 100644
index 0000000000000000000000000000000000000000..92d602c58b1a5da07ccf891badd63550bfbbc142
GIT binary patch
literal 635
zcmV->0)+jEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3l9JQ3l9O3`2(c@000McNliru)e8g;I0yCcg(v_30tiV&
zK~y-)#gjoxR8bVif7iLsd6SOASY|C|5w-}d5X+hpQ${074aAIAt%E*ByYO4Ia#IK?
zB$Qz#W?9mJ)zCQAfZ2#nKF8jhdFRb*@h03C)Pc)|b1%R1=YP(D{~hYqjcfkj05rgz
z@o@meaS$bFA4CaC?BJIO3LE)d)!6{x=Iy%yK%4@tiT2v7?BQJ}NGTgZqbY&w;CWH<
znJl;x0G40AMZaEUV7QB_nLvpffV2iBh-kE52IYY`%-o;GvVI^U)By|(juJl<VR~YU
zt@W=Ur9G2G&<J=g>G|hO+?ymEj&Qy&Nho9l3NVDua|65!y<vG_5hdI74vi5q3;@dZ
z4s%lv+1jvZIov|Wsp9~c^*R7lDitD>IC-X%Y<ip3m0g}pKA`o;F{(QmGU-ozFBBQM
z-b3s_0@F0{q=-_gW}@prLyVQBdA_Y#q^^#zTiRe@?kUB>Cdux0jCdQbW*^aZ)Zs)|
z2S1BGTGtfVJ3d=$&sfjpNnRR8*O!SkH_<<I5zn?kYeI%1bveb0naAvFG}(VJN?3;j
z6Z5$xvLEyGUKyh?ssJ}Q+9VW>6E+lDdo(o1=^q^=lm0;NeGW5R7bw`?v^d?}N42_2
zr3Ahk2|9oc)L~aGd_RWaTPUiWz0kwr><pgg2BZA>OZJb(*e-i0pb1FUZuQT%@fS_L
V)zeR5l9vDg002ovPDHLkV1nDv6bk?V

literal 0
HcmV?d00001

diff --git a/html/themes/default/icons/16/apps/office-calendar.gif b/html/themes/default/icons/16/apps/office-calendar.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7b4d6bfe298b40a2dfb093fb169de4398035c9a9
GIT binary patch
literal 991
zcmZ?wbhEHb6krfw_#VQbpsH}@%$b^*2aMCsY|&*cC@7e`XnXdg2X|lmGxbdVH@oUv
zf_}&Hm*sO_{Qv(yzk5?a&Gorkub;pFvugVOh{%Zk6(>J@`TM&m`j$0U>*BLkMfVHm
zeOj{l<bwwf*6qF0)ziOl@zT35eob9}<>iOpQ5}yP8XD%UJLFY<wRy>lipAgFzklDc
z{%6a)BiFBA-*x25aT5-!>~ld)j~+dKJZr_i#k+2O{qfhO_;S(oN6#I2EWA^jSO0wY
z`d>-^mbA3A{#6%Kd+vod-gK>e@aE(1rCU#X*FET7^{Qgd6Z`y&3wPeUbmPI+gIA_3
z-J3b-Y0uJg&z`@Sv-*I2$^C-q&k}o|#J1mN7zHCf1QdU=FfuTNFzA3n0+c5hIQB5C
z<dE^$u;5@bOSgz)<DnD1%=XI|8Ve2`o2YEi_2x#$g2!C43c($BCIl)TW(%C*p(xnw
zA)pbEz*G1@f!TMqsqB>#36363Gx^jmh)8X5>*aKs^yGnp(}89l;dy=m1&NG(JWN6b
zJ5Fvr#yVHRX@^Hb(u;t_+*uJ7f=-+_mjx|-bl^i1!xa|)9oM!PC>`z-kW{JgFlb)J
su$ZZZW2S&o3&X({<qZ`Mi<$UUCac<iFjQ=8WLe<cE!QiM=)hnN0Fv<XfB*mh

literal 0
HcmV?d00001

diff --git a/html/themes/default/icons/16/mimetypes/application-pdf.png b/html/themes/default/icons/16/mimetypes/application-pdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d115de1836685828efe484bed32a3668ff11572
GIT binary patch
literal 3306
zcmV<G3>EW<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU
z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag
z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh<iVD~V
z<RPMtgQJLw%KPDaqifc@_vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H
zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T
zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z@C0AMG7=F<Rxo%or10RUT+Ar%3j
zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i
z0%4j!F2Z@488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf
z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G
zw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@r6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@u
zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm
z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v
zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6@fL%FCo
z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t
z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl
zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_
zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t@q*0);U*o*SAPZv|vv@2aYYnT0
zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O
zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w@D1)b+p
z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc=
zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ
zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BK<z=<L*0kfKU@CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h
z1DNytV>2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C`
z008P>0026e000+nl3&F}00067Nkl<Zc-nN5zf09&7{x!&^S<}{y<Lb97blm7AcR^3
z=O$@T%%Snpmi-$BO|8L=#KFN)%rL|u3=HIML4jr0zraD%)bEeyX?U-CLp|$zIPW>n
zIkLLC>gR`0m!J_OfGVI|!NDEe5@+`Llw3STfF~1ElqV4HKx{&2BqA~(U|<FtUp_L3
z2p|GQQ9whGS|JEtL%#e0F{66%5~C)>kc0=2j0!l8yJKd!8!m?a`ibO`kU`!GG@9HZ
z03Z(Hh&ZSt!2v_RZW3}&@mjYCi1Y>2AvhWxZ8$u9fRyKGbVME1KKG^wh=Cf~a5Qs5
z?&#?;((CnOIX59WP%eMf+=+RLB3oPd*ch_3gqhtg;GXhp!_jCshODjOtrq3tBC@=U
zY;WHv5TXBj=BfXXMiV<7%K3Su+r`Gm3GFtFj4)A_Fg^VTcn`cyH|S@V%yFEszK%DW
zaBzU^?_-mb6gxXGH^<TFD8Mc-0nDW#Y2W_wA=>K^I~~pz7GQW75kXZE5oovhF*L;e
zm6fN6yaMvnYH*sHpJ;yX6882eXP!~ry@wYiB7z`jP_mf8MH%kz2Bz%9?l<)JF2$qA
z9L>yPC#RQW5g~*?@IX~n*N>PrGycAQL*YhU8Co0kTN5P3Fy-vzjJl|=3w+*K!>q#0
o(rC=DhI3(Al9QPKzvX`e0L0+o|I5n&l>h($07*qoM6N<$f_hvkm;e9(

literal 0
HcmV?d00001

diff --git a/html/themes/default/icons/16/mimetypes/text-csv.png b/html/themes/default/icons/16/mimetypes/text-csv.png
new file mode 100644
index 0000000000000000000000000000000000000000..52ac9fa3f8b2fe4c07f428b973f11b562fe5fb9a
GIT binary patch
literal 3111
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
B#OeS5

literal 0
HcmV?d00001

diff --git a/html/images/small_error.png b/html/themes/default/icons/16/status/dialog-error.png
similarity index 100%
rename from html/images/small_error.png
rename to html/themes/default/icons/16/status/dialog-error.png
diff --git a/html/themes/default/icons/16/status/dialog-information.png b/html/themes/default/icons/16/status/dialog-information.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d72794dd0f14442b856ab4aca6b23edcb8c5d4f
GIT binary patch
literal 829
zcmV-D1H$}?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!&q+i<RCwBA
z{Qv(y0|;D6V+2v`e}6Ohu&^>jvIz;=F|l)Tfu#R@`}pnKt1pLs{9;(n$ilD%sP3ob
z5{N#40AgW40PcUk872uT3CD{##4~fM*fB72@iH(lGBW)C^qTwIokPLT_pJ<gdE?DO
z24;plp!%;MO#lG|H{kzYhGG#7ktC^@S_TGb7Y2sEe;FA5{RPW0a*Hx>%jhyFD=RTG
z&23J4dhNqQpl}mN4j_Qw2C%X-6pGvEGBAjWGcbHS3N{f1FfubRO2{zCIcPAvzIUP!
zW&l6{A-urGz{4y6bk*lGAWt)31%G)MSOh;ZFtRf6z=Qw-2yOt-wZHzqyUN1I^@o9h
znFHv8|7b1%2J*Kb4F5hoV)*-?0q#720D>Fv{WC+y%PU`-Bm^!oFtD&QFfcJ9G=t0n
z8Tj`n!{hUR7`}aE=z&QA1P~M41%DW(KRw5A{_AU?3s`_&`S%5Z{{u1WSBB3o{xCc^
z$#5R1b^=TvKmfrF_|M4j=KDK_ju#h!Y@h=ectH^h#X$CdHU@@AXMu6|mZ1X}jc;K3
z00IbZz~6sBSF<s!e{qIk&({w?0Y0c9yb$)6_Y4frPBH9ZW@lKB96SI4gfQSg*cHEj
zeP-DG=^4}jK_~{YKRf{@KcE~V6T@%humuPpcp(1$17$EXT=;l};j^$V11~5XnV?pD
zzQOPr7=0K1p+ycr0I{G%6G%VH|0A~_Xx+XtPt@q;%NGnEKYeES{^KVD`-``?Erb}3
z{6RASAb{WooYpLb1?RWFto+Oo(di5~Z{A_JbLSxg`}ZFVovnq;3pxIMgZck1R5d^V
z!40_b_&wZIW~L7;H*a5Nc=Y5M!<TQL7=8d<@Rx~|<<*b>7>N@gfEZ!fSzcZqk#7F~
zx7F6xNmf-=4LNY&;Lpd8AI<;#`O`+A)M1#KKYt*B1`uEXD1``7@-9f-00000NkvXX
Hu0mjfd9P)B

literal 0
HcmV?d00001

diff --git a/html/images/small_warning.png b/html/themes/default/icons/16/status/dialog-warning.png
similarity index 100%
rename from html/images/small_warning.png
rename to html/themes/default/icons/16/status/dialog-warning.png
diff --git a/html/images/lists/locked.png b/html/themes/default/icons/16/status/locked.png
similarity index 100%
rename from html/images/lists/locked.png
rename to html/themes/default/icons/16/status/locked.png
diff --git a/html/themes/default/icons/16/status/object-locked.png b/html/themes/default/icons/16/status/object-locked.png
new file mode 120000
index 000000000..f399906a8
--- /dev/null
+++ b/html/themes/default/icons/16/status/object-locked.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/16/status/locked.png
\ No newline at end of file
diff --git a/html/themes/default/icons/16/status/object-unlocked.png b/html/themes/default/icons/16/status/object-unlocked.png
new file mode 120000
index 000000000..b66b59b44
--- /dev/null
+++ b/html/themes/default/icons/16/status/object-unlocked.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/16/status/unlocked.png
\ No newline at end of file
diff --git a/html/themes/default/icons/16/status/task-complete.png b/html/themes/default/icons/16/status/task-complete.png
new file mode 100644
index 0000000000000000000000000000000000000000..543710fb7b9b2a3ea9a115031cec06748ba82d8e
GIT binary patch
literal 661
zcmV;G0&4w<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!CrLy>RCwBA
z{Qv(y10?_;fS4F41ONfV!Z?9Zmf;V>V}`Fl-Zvor4#a;zGC<4*#H>hc7AT*ML79!6
zA(@$(K^Gu^SQ!2?Yy@hk1`2P-YZb_+{}`lzWD-z)+OIzhKNwjULIDDZiRmxXZ&nW0
z#SFh09C2#=#UKnM%LQZv_DRY}HUnMxh~X!L6Hx3TKmalQ|MY*Au$HhehaATuh93-;
z42(#ce=~>!U6{cl&2m)QSGt2=mS6qV?N{4@n!|wVo`9491Q5&r5C2cU`|<7<QwWm`
z!#jqh3=bGWfa2GHwk9yhGbAutF`BcPvN3!(`GMi<_OGiMm>JR-I2b;_>;MQLMurpy
zF`&Zj3<V5E46lG9^BL{}o%oi)j=_w<0>~Ey;tfE&g<%2%7efOBFT+Q0fO0S}Fmf?4
z00a;VFkoIW++jGya2;rXI#42<L79OGh$X>ZU|^UE46;)U{S533l|bA7q6ZN`05Jjm
z!@%%`;WWb~pd`oz>_E&7#1DaZ77*_PYW&YohD|dF00a;V!)GA*m*E)01)#I_fZhSc
z^AoVMe=yu;$O9TSn*mR90|+1%u(^L3ZU8l1Wq1KJ;1}4x?|~6j4D|DS1_EgnAb?oF
z{`?2TKY@-t222aj8D0Z5#{pB_4wNXx0RRGs85mp)V1@sIPJYf{&hQBsFDwjuz+x;&
vNg0`DhOildY=8h_q%=1I1Q5l!5g@<-!%>U$(^Vlh00000NkvXXu0mjfxtIY%

literal 0
HcmV?d00001

diff --git a/html/images/lists/unlocked.png b/html/themes/default/icons/16/status/unlocked.png
similarity index 100%
rename from html/images/lists/unlocked.png
rename to html/themes/default/icons/16/status/unlocked.png
diff --git a/html/images/logout.png b/html/themes/default/icons/22/actions/application-exit.png
similarity index 100%
rename from html/images/logout.png
rename to html/themes/default/icons/22/actions/application-exit.png
diff --git a/html/themes/default/images/home.png b/html/themes/default/icons/22/actions/go-home.png
similarity index 100%
rename from html/themes/default/images/home.png
rename to html/themes/default/icons/22/actions/go-home.png
diff --git a/html/images/small-error.png b/html/themes/default/icons/22/status/dialog-error.png
similarity index 100%
rename from html/images/small-error.png
rename to html/themes/default/icons/22/status/dialog-error.png
diff --git a/html/images/info.png b/html/themes/default/icons/22/status/dialog-information.png
similarity index 100%
rename from html/images/info.png
rename to html/themes/default/icons/22/status/dialog-information.png
diff --git a/html/themes/default/icons/22/status/dialog-question.png b/html/themes/default/icons/22/status/dialog-question.png
new file mode 120000
index 000000000..fb4658cb6
--- /dev/null
+++ b/html/themes/default/icons/22/status/dialog-question.png
@@ -0,0 +1 @@
+/home/mcmic/dev/opensides/fusiondirectory/html/themes/default/icons/22/status/dialog-information.png
\ No newline at end of file
diff --git a/html/images/error.png b/html/themes/default/icons/32/status/dialog-error.png
similarity index 100%
rename from html/images/error.png
rename to html/themes/default/icons/32/status/dialog-error.png
diff --git a/html/images/warning.png b/html/themes/default/icons/32/status/dialog-warning.png
similarity index 100%
rename from html/images/warning.png
rename to html/themes/default/icons/32/status/dialog-warning.png
diff --git a/html/themes/default/icons/32/status/object-locked.png b/html/themes/default/icons/32/status/object-locked.png
new file mode 100644
index 0000000000000000000000000000000000000000..d08a33cf702bcacb5930d4900697cd5974fab31f
GIT binary patch
literal 1239
zcmV;|1StE7P)<h;3K|Lk000e1NJLTq000vJ000^Y1^@s6RbOWW00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(+L9$91yTht7ZTI1Y}7>
zK~#90g_O&0RaF#+zkSZRZE1TcAp}rUKqE?wIM4(WU}PAyjUmd!nTZ{h;=o``Oq}@#
z7!wC7iC`Ex^9jVD20Lghh8AlH)P_D%+Cty=o^$RwXTO$%OMwcOU$V1zvey3cTWhau
z#Rj@|?HV&PGjA%T-dI^#8JV7*9#Bg4ojiGRqigFmJ3GtZ;NWag6q)=-qobp7Z*T91
zCr+GrJZNEI;ZT;{V;HUVa2&^fCrL7_wVqxJ^z`(sc64<7KWKh_evh?QL`3pDznZ40
z6h$GGN@XdIW0{?um64GV=e=JL5jlSR`0dWl&PSIvJw5G2MA9_9B_eY1;>9n!ySsNE
zJ9dnN2M@NNK7G1pVq#))XlO``F>@j!M~@zT?@`TuOGKn7iXm&QoH}*tqer<veE2W}
z0|S@(`uapf<idpu@=(&vn>VkBh%7HJOMid=XB+jktE;PY`SRs_W@hGwb54#NIkE*H
zSW9ScZ{H3qg<;5<GiN^82zLJbc{4UP_VxJqcv}zzw6?Z(u7in4TO7x=BuQqAqL|nS
z1~54}`BxmrI{`|i(sKaOS};ixZ><&QoI88=?BiHuSyod@AtETHWF2fdae1Hu$%`m|
zED4B<aMcCPR5M3n!Ww{*U-m<-^^ak5@R{b8*1Wbf6}+@#5lWkyupnNr4y*@jz<Px-
z#$LZw)3$N94z}%UT^aeozw(rHDEYN(m_wiL$1Q-Vf(k)JfVyu(0ZP?(r@<BAa?rK<
zxv7capME2v)bb>H3Kj?NLLN{UKyxFsHbJ3bbrsSWbOts9o!4Q3W?Mr{061I*LFwVu
zR_5G~!|W(`)BD=T{L_C0LcnU!=B`VFtES}1>e^_i^<@D>A#S0<>+gKQmbPX#x3%)~
zcm3$wQ+Hh@^)gM$;++++=Kh?mlTzRfqob1mlu8j{7*J|xAg`=~Nx{^>Wh~AuVRZqv
zAi_UHy4Tnj4m?4*+(0EMD2%7MrIF3s%TTR?&smzUQcE>~H+WMJVAcKCau$jhbP8Dl
za|=`_-{<+Kx6raF;_Y`|hO`1j!u-q%X_A8}a7Bi55P9zjQ~)Leqw7tzIoJZkz?~|C
z*O%DWQifZ1NGmBT%NZgTWenCDlqft9Ss&1#le!yc!D)PL6&+V-DmlLScAOvxXle`@
z9A0GCR={g81=fLhg(wgYkuy?%ojfI5okyn?lsIsPrgF&V-%n6(E)hkFsX5K=Hjik7
z^>u(p;l1EJ1kTrC$?coiT9puoavJ3f=#0K=F+mXEz2Z(qu*Tu!KFE6Te$AOzp}ReX
z=o}RUh%NBi5Ma6VXN7We$cwug*s;a2wMCH_g?a!a4(ea65Z#!VA9{7~fg_FKAc(??
z!HdRw!=Yy*s$cB|=g74u)1E?uRp7i3DsT!KN^o^NM4kI!51Tgc{Jqo=wb^(%H6G=x
z!+F74k8=v=l`>AmI&dDG17pEEFdikI!29T(e*sbp^jm;eh-?4=002ovPDHLkV1g(B
BI1T^+

literal 0
HcmV?d00001

diff --git a/html/plugins/groups/images/icon.png b/html/themes/default/icons/48/apps/system-users.png
similarity index 100%
rename from html/plugins/groups/images/icon.png
rename to html/themes/default/icons/48/apps/system-users.png
diff --git a/html/images/ldapserver.png b/html/themes/default/icons/48/places/network-server.png
similarity index 100%
rename from html/images/ldapserver.png
rename to html/themes/default/icons/48/places/network-server.png
diff --git a/html/plugins/users/images/icon.png b/html/themes/default/icons/48/places/user-identity.png
similarity index 100%
rename from html/plugins/users/images/icon.png
rename to html/themes/default/icons/48/places/user-identity.png
diff --git a/html/images/password.png b/html/themes/default/icons/48/status/dialog-password.png
similarity index 100%
rename from html/images/password.png
rename to html/themes/default/icons/48/status/dialog-password.png
diff --git a/html/themes/default/images/fd_logo.png b/html/themes/default/icons/scalable/apps/fusiondirectory.png
similarity index 100%
rename from html/themes/default/images/fd_logo.png
rename to html/themes/default/icons/scalable/apps/fusiondirectory.png
diff --git a/html/themes/default/images/accountexpired.png b/html/themes/default/images/accountexpired.png
deleted file mode 100644
index 3763a38813a9daf6b38e655e3242ee463ab0ea12..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1734
zcmeAS@N?(olHy`uVBq!ia0y~yU{YgXVASDY1B!g#Td@~NF%}28J29*~C-V}>VN3FM
zcVYMsf(!O8p9~b?EbxddW?<kJ1YySdl=z82LG}_)Usv|qEKJ<$JSI(+D}X|>C9V-A
z&iT2ysd*&~&PAz-C8;S2<(VZJ3LzP(3hti10q;{(^ME$Udb&7<RNQ)dcVm}|tHgni
z>sRf*8J#XEqGx3($b6P1-cdl9*-~$pyQPWocTGJ(!>^VmLafZK-7Ni2m!(&yuR5J@
zH?7oIa$(x{@6C(UC92Z)@x3~K;LDQp^Xr3|85S_!<X~V(WMWY8!A%t;{8jY-_BP!A
z(ee59{om#GN@_koq3P<<HD%rWi9Rw6eb=t;zj3ANYsEU#S2oAj>&G8$e{bKnJig|7
z*o=~u-S_K$DaP%MIsWox=A1cmju`M<ER9_<MM)KCtNU!#t!`^gy)-x8ew#FF*^RvI
zg>`ju^0gn{ImRuv|1vvn{q>D;>yx)eaSAi+c${d&bJ#Kd@q@%oQEMN)dGjW0#*;a%
zoD4FRGtPY8({j>)XJSxSkk{_SOW*%)YD*MQV<<R&NagwJ`{$+vO|#v9)8M3~`}NZ8
z(+n6J9`jFry|-rG^ZGX*ecL^~G>gtbg!v}FetdTC-wBD2?9><>j9WOt;X)48V8F-#
z)Q5#Sd0%ed*8?Vu4Q7X)^xNzE2s30T0|TFcC0Go?YC1MSU`T+plSDBbVgYF&i*lF&
z)<+t}A<O{MKn?{;zd(JYQTP%(AvpqZ1=5a1Ne=^kLlhW;#E0kuxwey+{qLIzGA!sd
zsC@oVT8)Wei=f(78-|9kLr-3d@1McJaKQ}{L8JvVYRnJ{TC7D8mcYas!pMRJ^<UfV
z9@?A_%<iq6H+^bQS4Tu2!-0=KzyGT%KA&&p<E44}l%>8r&`SqCwx2v(yKl;+vKc;?
zMJ}7T-jAQVYl=|pb=Px|Kv`MN$#?U%zxjFDWUI8=V+*(Y-+@N{t&^|4&kZb;k`p)G
zfB*Q=Bc)@7J%uv2c_*Ju6SjP=u~g^&oRU~^O>iM6r?&N)s*j$&e)8_S$I>=u8vAVf
z{QAd}&Hb^K3_H?+>~Dvj+?;-Yw-LjE`e(p`hsezOWB*^)FTtWumRFn!1lA}Fp00i_
I>zopr0Egw>j{pDw

diff --git a/html/themes/default/images/sign_out.png b/html/themes/default/images/sign_out.png
deleted file mode 100644
index 73b27d9fd698719f5b3788953815b886eac142a9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1330
zcmV-21<m@2P)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3kv`M3kv~l1cbK$000McNliru(+Ua}8!d@3bjbh!1iwi{
zK~#9!g_YlLR7DiWKQs5<z5BB*+ZL$87DP}fzd{A%LHq#-1u-JVL?a;~DbKw4;}0Mq
z@s$uBHX8NC2T6<%2;oP9G=L~9)&deDR11W5x7{E2Zg=-~@15~sp-?P%l5ZxH%zWmY
zIdkR+o?`voYb>pGyMhjlj%olzRl#t{GP4^moSS&kUhx#@THph%^$H+mK@7k{R}|dV
z(C-U*_^Xx6&Zg7p;D5pW-D?&I*lWQ@(RjQiF>9ub%$|+AXdyu)Lj2|+>Yu;K<wjLC
zpRZPxI$O5PecvtXI-gFb{b|Ad-D^4p97;e>bj5NKTYAt-yRh2Z5r)xNq&0q_Nd49=
zYR8UK=<CDrCjKng_GjNOdGY82xbc{$2b<#YO)c+i6Oo-CV=P*TVcX#Q=!tqm^*X{Z
zFx%R&mMp=VH48mB*d`q3<@sazOr&S?olGX9%?Dtu^(P4-dYU(^$J*M1(VC=s<thMn
z=iK|jX>=olObp!yAhNofq+b{6>u(qNmC7EVzqhxyYyezZxq7WF#Qvsb%feRAW<s4Q
zs#mVk^u}vM7A>Uob05;SQJ#nPJZgX4B)M%Xc4vx8{{ZGQ9hl=4>O({GQn}IoYqQ!1
zjf*Q+S-{>zQ(|3g{hNa146K<mi7tK#8496;fLPaJ++Ti0XiYsgO52X@jRZ+ac)@dw
zoj8eZYef$ZhWzpIddZM|5@-ijG&eO#e?|*|<Kmt>KM56vfvVML+p!(rb!pqN9j(-q
zmz3-~OY4!N%yi4rRH|#P<EA9gAt5DNTTzt?exZP$&oi9<5@8qwl?pN(2AJaM19Lyz
zN%-b1>}-xW0t3+zLZl=RwGpv;EQTtTP>zH4Janzby#og^qR}T-=ET-_iRMP{KU{$T
zY=|I4V)AIK<RFJfkl7rv<X{ww*thTC?A|jyb=`VGu8T1-0YXf|0hAEZ1X1<SmB>hz
zaHaaNB();smNAYWnI3%R6s%kSa4scUDQZyjh47?;VFkC9QzHC`>}st64T2~CQfE#z
zM$-h-q*kvJptIvr49k*bW;OKZL21)MTMfyder#+qj49y*;CWNvK{!lc+vEkRW|}vK
zTAJ_4jTg>M_(C2o1%9bunT)r$lU@4?x>A|qoU>~;&iqcCUAw`y|KohYGARW9_((W>
zBG=rMHvr_@Tkb5sJ3POR?lwE;B7C3n<=;uHdli6@Pd~?x$MEAZ>aiH*6DNtkwE=*8
z`}R`_hZq|gqUd?YeptHr8z4LRyPaOOc5zGv2V!&PydGb=RGN_pJXQ$PneTa&2L@E>
z?%hj&B$HoU?3{BN$WLCNwY6ugbF6UDEEc<b$C+ov<Cw`A$WRCovL4E62+O3N8>KWb
zfIB>LG1K0*Ka+a)H()fKP6w0VOeUkFJ)83L#`2eqk`t}xvh#em9P-0qVa8%e(*!9A
z(2S3bQMqzex!13k-D2_BmDc2;`_ODUovu&YL3(?8B@lam;M$vU-+#|ks!JF~hmlA`
z00P&osUXPKO!LM_IDF#d3(ubeMu6fIJIEt&0fgpfb1icnHx)vp5F(+3kiHP!xD>-f
oEzS3G%}sg01*++EdP+k61=#!}%n4l`KL7v#07*qoM6N<$g8deGIRF3v

diff --git a/html/themes/default/index.theme b/html/themes/default/index.theme
new file mode 100644
index 000000000..40c0dfd97
--- /dev/null
+++ b/html/themes/default/index.theme
@@ -0,0 +1,120 @@
+[Icon Theme]
+Name=FusionDirectory
+Comment=FusionDirectory default icon theme
+
+Directories=icons/16/actions,icons/22/actions,icons/32/actions,icons/48/actions,icons/scalable/actions,icons/16/apps,icons/22/apps,icons/32/apps,icons/48/apps,icons/scalable/apps,icons/16/status,icons/22/status,icons/32/status,icons/48/status,icons/scalable/status,icons/16/mimetypes,icons/22/mimetypes,icons/32/mimetypes,icons/48/mimetypes,icons/scalable/mimetypes,icons/16/places,icons/22/places,icons/32/places,icons/48/places,icons/scalable/places
+
+[icons/16/actions]
+Size=16
+Context=Actions
+
+[icons/22/actions]
+Size=22
+Context=Actions
+
+[icons/32/actions]
+Size=32
+Context=Actions
+
+[icons/48/actions]
+Size=48
+Context=Actions
+
+[icons/scalable/actions]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[icons/16/apps]
+Size=16
+Context=Applications
+
+[icons/22/apps]
+Size=22
+Context=Applications
+
+[icons/32/apps]
+Size=32
+Context=Applications
+
+[icons/48/apps]
+Size=48
+Context=Applications
+
+[icons/scalable/apps]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[icons/16/status]
+Size=16
+Context=Status
+
+[icons/22/status]
+Size=22
+Context=Status
+
+[icons/32/status]
+Size=32
+Context=Status
+
+[icons/48/status]
+Size=48
+Context=Status
+
+[icons/scalable/status]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[icons/16/mimetypes]
+Size=16
+Context=MimeTypes
+
+[icons/22/mimetypes]
+Size=22
+Context=MimeTypes
+
+[icons/32/mimetypes]
+Size=32
+Context=MimeTypes
+
+[icons/48/mimetypes]
+Size=48
+Context=MimeTypes
+
+[icons/scalable/mimetypes]
+MinSize=1
+Size=128
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[icons/16/places]
+Size=16
+Context=Places
+
+[icons/22/places]
+Size=22
+Context=Places
+
+[icons/32/places]
+Size=32
+Context=Places
+
+[icons/48/places]
+Size=48
+Context=Places
+
+[icons/scalable/places]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Places
+Type=Scalable
diff --git a/html/themes/default/style.css b/html/themes/default/style.css
index b133365b1..83d83955e 100644
--- a/html/themes/default/style.css
+++ b/html/themes/default/style.css
@@ -223,29 +223,6 @@ text-align:right;
 
 /********************** Template migration *********************/
 
-/* Account Expired screen */
-td.gosaAccountExpiredBack {
-width:550px;
-height:300px;
-background:url(images/accountexpired.png);
-vertical-align:top;
-}
-
-div.gosaAccountExpiredBack {
-padding-top:40px;
-margin-left:90px;
-margin-right:50px;
-padding-bottom:0;
-vertical-align:top;
-}
-
-p.gosaAccountExpiredHeader {
-text-align:left;
-font-size:14px;
-font-weight:bold;
-margin-bottom:15px;
-}
-
 table.framework {
 height:auto;
 width:100%;
diff --git a/ihtml/themes/default/accountexpired.tpl b/ihtml/themes/default/accountexpired.tpl
deleted file mode 100644
index 1fb965350..000000000
--- a/ihtml/themes/default/accountexpired.tpl
+++ /dev/null
@@ -1,73 +0,0 @@
-<body style="background-color: #8B858B;background-image:none;">
-{* FusionDirectory login - smarty template *}
-{$php_errors}
-{$errors}
-
-<!-- Spacer for some browsers -->
-<div class='gosaLoginSpacer'></div>
-
-<table class='gosaLoginMask' style="text-align:right;" align='center'>
- <tr>
-  <td class='gosaAccountExpiredBack' style="width:550px;">
-   <div class='gosaAccountExpiredBack'>
-
-    <p class='gosaAccountExpiredHeader'>
-    {t}Your password has expired. Please choose a new one!{/t}
-    </p>
-
-    <!-- Formular data, containing a table to center fields -->
-    <form action='index.php' method='post' name='mainform' onSubmit='js_check(this);return true;'>
-     <table style='vertical-align:middle; text-align:left;' cellspacing='7' align='center'>
-      <tr>
-        <td>
-          <p> {t}Old password{/t}</p>
-        </td>
-        <td>
-    <input type="password" name="oldpassword" maxlength="25" value=""
-     title="{t}Old password{/t}" onFocus="nextfield= 'newpassword';">
-        </td>
-      </tr>
-      <tr>
-        <td>
-          <p> {t}New password{/t}</p>
-        </td>
-        <td>
-    <input type="password" name="newpassword" maxlength="25" value=""
-     title="{t}New password{/t}" onFocus="nextfield= 'verifypassword';">
-        </td>
-      </tr>
-      <tr>
-        <td>
-          <p> {t}Verify password{/t}</p>
-        </td>
-        <td>
-    <input type="password" name="verifypassword" maxlength="25" value=""
-     title="{t}Verify password{/t}" onFocus="nextfield= 'changepassword';">
-       </td>
-      </tr>
-      <tr>
-       <td colspan="2" style="text-align:center;">
-       <br />
-    <input type="submit" name="changepassword" value="{t}Change password{/t}"
-       title="{t}Click here to change your password{/t}">
-       </td>
-      </tr>
-     </table>
-    </form>
-
-   </div>
-  </td>
- </tr>
-</table>
-
-<!-- Place cursor in username field -->
-<script type="text/javascript">
-  <!-- // First input field on page
-  nextfield= "{$nextfield}";
-  focus_field({$nextfield});
-  -->
-</script>
-
-<!-- Spacer for some browsers -->
-<div class="gosaLoginSpacer"></div>
-</body>
diff --git a/ihtml/themes/default/framework.tpl b/ihtml/themes/default/framework.tpl
index b7ec4713f..4f20d66fc 100644
--- a/ihtml/themes/default/framework.tpl
+++ b/ihtml/themes/default/framework.tpl
@@ -5,13 +5,13 @@
   <form action="main.php{$plug}" name="mainform" id="mainform" method="post" enctype="multipart/form-data">
     <div class="setup_header">
       <div id="header_left">
-        <img id="fd_logo" class="optional" src="{filePath file="images/fd_logo.png"}" alt="FusionDirectory"/>
+        <img id="fd_logo" class="optional" src="geticon.php?context=applications&icon=fusiondirectory&size=48" alt="FusionDirectory"/>
         <a class="maintitlebar" href="main.php?reset=1">
-          <img src="{filePath file="images/home.png"}" alt="Main"/>&nbsp;{t}Main{/t}
+          <img src="geticon.php?context=actions&icon=go-home&size=22" alt="Main"/>&nbsp;{t}Main{/t}
         </a>
         &nbsp;
         <a class="maintitlebar logout" href="logout.php?request">
-          <img src="{filePath file="images/sign_out.png"}" alt="Sign out"/>&nbsp;{t}Sign out{/t}
+          <img src="geticon.php?context=actions&icon=application-exit&size=22" alt="Sign out"/>&nbsp;{t}Sign out{/t}
         </a>
         <a class="plugtop">
           <img src="{$headline_image}" alt="{t}{$headline}{/t}"/>{t}{$headline}{/t}
diff --git a/ihtml/themes/default/islocked.tpl b/ihtml/themes/default/islocked.tpl
index 5bd4d148c..bf3e83fbb 100644
--- a/ihtml/themes/default/islocked.tpl
+++ b/ihtml/themes/default/islocked.tpl
@@ -1,5 +1,5 @@
 <div style="font-size:20px;">
-  <img alt="" src="images/encrypted.png" style="vertical-align:top;">&nbsp;{t}Locking conflict detected{/t}
+  <img alt="" src="geticon.php?context=status&icon=object-locked&size=32" style="vertical-align:top;"/>&nbsp;{t}Locking conflict detected{/t}
 </div>
 
 <p>
@@ -18,6 +18,6 @@
   &nbsp;
   <input type="submit" name="cancel_lock" value="{t}Cancel{/t}">
 </p>
-      
+
 <input type="hidden" name="dn" value="{$dn}">
 
diff --git a/ihtml/themes/default/msg_dialog.tpl b/ihtml/themes/default/msg_dialog.tpl
index fe0344b85..1a4eceb08 100644
--- a/ihtml/themes/default/msg_dialog.tpl
+++ b/ihtml/themes/default/msg_dialog.tpl
@@ -28,11 +28,13 @@
     <div id="e_layerTitle{$i_ID}" class="msgtitle">
       <h2>
       {if $i_Type == $smarty.const.ERROR_DIALOG}
-        <img src="images/error.png" class="center" alt="{t}Error{/t}"/>
+        <img src="geticon.php?context=status&icon=dialog-error&size=32" class="center" alt="{t}Error{/t}"/>
       {elseif $i_Type == $smarty.const.WARNING_DIALOG}
-        <img src="images/warning.png" class="center"  alt="{t}Warning{/t}"/>
-      {elseif $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG}
-        <img src="images/info.png" class="center" alt="{t}Information{/t}"/>
+        <img src="geticon.php?context=status&icon=dialog-warning&size=32" class="center"  alt="{t}Warning{/t}"/>
+      {elseif $i_Type == $smarty.const.INFO_DIALOG}
+        <img src="geticon.php?context=status&icon=dialog-information&size=32" class="center" alt="{t}Information{/t}"/>
+      {elseif $i_Type == $smarty.const.CONFIRM_DIALOG}
+        <img src="geticon.php?context=status&icon=dialog-question&size=32" class="center" alt="{t}Question{/t}"/>
       {/if}
         {$s_Title}
       </h2>
diff --git a/ihtml/themes/default/password.tpl b/ihtml/themes/default/password.tpl
index 27ba1144d..90a41157c 100644
--- a/ihtml/themes/default/password.tpl
+++ b/ihtml/themes/default/password.tpl
@@ -23,7 +23,7 @@
 
 {if $changed}
 <div class='success'">
-<img class="center" src="images/true.png" alt="{t}Success{/t}" title="{t}Success{/t}">&nbsp;<b>{t}Your password has been changed successfully.{/t}</b>
+<img class="center" src="geticon.php?context=status&icon=task-complete&size=16" alt="{t}Success{/t}" title="{t}Success{/t}">&nbsp;<b>{t}Your password has been changed successfully.{/t}</b>
 </div>
 {else}
 <form action="password.php{$params}" method="post" name="mainform" onSubmit="js_check(this);return true;">
diff --git a/ihtml/themes/default/recovery.tpl b/ihtml/themes/default/recovery.tpl
index db2bf5edc..22daffabd 100644
--- a/ihtml/themes/default/recovery.tpl
+++ b/ihtml/themes/default/recovery.tpl
@@ -17,7 +17,7 @@
   {$msg_dialogs}
   <div id="window_titlebar">
     <p>
-      <img class="center" src="images/password.png" alt="{t}Password{/t}" title="{t}Password{/t}"/>
+      <img class="center" src="geticon.php?context=status&icon=dialog-password&size=48" alt="{t}Password{/t}" title="{t}Password{/t}"/>
       {t}Lost password{/t}
     </p>
   </div>
@@ -111,7 +111,7 @@
     <div style="clear:both"></div>
 {elseif $changed}
     <div class="success">
-      <img class="center" src="images/true.png" alt="{t}Success{/t}" title="{t}Success{/t}">&nbsp;<b>{t}Your password has been changed successfully.{/t}</b><br/>
+      <img class="center" src="geticon.php?context=status&icon=task-complete&size=16" alt="{t}Success{/t}" title="{t}Success{/t}">&nbsp;<b>{t}Your password has been changed successfully.{/t}</b><br/>
       <br/><a href="./">Return to login screen</a>
     </div>
 {else}
diff --git a/ihtml/themes/default/remove.tpl b/ihtml/themes/default/remove.tpl
index df96d5ad9..a73f16b55 100644
--- a/ihtml/themes/default/remove.tpl
+++ b/ihtml/themes/default/remove.tpl
@@ -1,5 +1,5 @@
 <div style="font-size:18px;">
-  <img alt="" src="images/warning.png"/>&nbsp;{t}Warning{/t}
+  <img alt="" src="geticon.php?context=status&icon=dialog-warning&size=32"/>&nbsp;{t}Warning{/t}
 </div>
 <p>
  {$intro}
diff --git a/ihtml/themes/default/setup_header.tpl b/ihtml/themes/default/setup_header.tpl
index 2f4c6f42d..f313e4544 100644
--- a/ihtml/themes/default/setup_header.tpl
+++ b/ihtml/themes/default/setup_header.tpl
@@ -1,6 +1,6 @@
 {$php_errors}
 <div class='setup_header'>
-  <div style="float:left;"><img src='{filePath file="images/fd_logo.png"}' class='center' alt='FusionDirectory' /></div>
+  <div style="float:left;"><img src='geticon.php?context=applications&icon=fusiondirectory&size=48' class='center' alt='FusionDirectory' /></div>
   <div style="padding-top:8px;text-align:right;height:38px;color:#000000;font-size:20px">{$version}</div>
 </div>
 
diff --git a/include/class_CopyPasteHandler.inc b/include/class_CopyPasteHandler.inc
index f59d0e935..b5a2d52cc 100644
--- a/include/class_CopyPasteHandler.inc
+++ b/include/class_CopyPasteHandler.inc
@@ -358,10 +358,8 @@ class CopyPasteHandler
   {
     $Copy_Paste = "&nbsp;<img class='center' src='images/lists/seperator.png' alt='' height='16' width='1'>&nbsp;";
     if ($this->entries_queued()) {
-      $img = "images/lists/paste.png";
-
       $Copy_Paste .= "<input type='image' name='editPaste' class='center'
-        src='".$img."' alt='"._("Paste")."'>&nbsp;";
+        src='geticon.php?context=actions&icon=edit-paste&size=16' alt='"._("Paste")."'>&nbsp;";
     } else {
       $Copy_Paste .= "<img class='center' src='images/lists/paste-grey.png' alt=\""._("Cannot paste")."\">&nbsp;";
     }
diff --git a/include/class_IconTheme.inc b/include/class_IconTheme.inc
index 5aaa40cf8..d0fce4a74 100644
--- a/include/class_IconTheme.inc
+++ b/include/class_IconTheme.inc
@@ -60,10 +60,10 @@ class IconTheme
   private $path;
   private $parent;
 
-  function __construct($folder, $default_parent = 'default')
+  function __construct($folder, $default_parent)
   {
     $this->path = $folder;
-    $datas  = parse_ini_file($folder.'/index.theme', TRUE, INI_SCANNER_RAW);
+    $datas  = @parse_ini_file($folder.'/index.theme', TRUE, INI_SCANNER_RAW);
     if ($datas === FALSE) {
       throw new Exception('Error while parsing theme file');
     }
@@ -93,10 +93,9 @@ class IconTheme
     }
 
     if ($this->parent !== NULL) {
-      if (isset(self::$themes[$this->parent])) {
-        $parent = self::$themes[$this->parent];
-      } else {
-        $parent = self::$themes['default'];
+      $parent = $this->findTheme($this->parent);
+      if ($parent === NULL) {
+        $parent = $this->findTheme(self::$default_theme);
       }
       return $parent->FindIconHelper($context, $icon, $size);
     }
@@ -136,19 +135,43 @@ class IconTheme
     return NULL;
   }
 
-  static public $themes;
+  static public $default_theme  = 'default';
+
+  /* We store themes in the session. To do otherwise, override these methods. */
+  static public $session_var    = 'IconThemes';
   static public function loadThemes($path)
   {
+    $themes = array();
     if ($dir = opendir("$path")) {
       while (($file = readdir($dir)) !== FALSE) {
         if (file_exists("$path/$file/index.theme") && !preg_match("/^\./", $file)) {
           try {
-            self::$themes[$file] = new IconTheme("$path/$file");
+            if ($file == self::$default_theme) {
+              $themes[$file] = new IconTheme("$path/$file",  NULL);
+            } else {
+              $themes[$file] = new IconTheme("$path/$file", self::$default_theme);
+            }
           } catch (Exception $e) {
           }
         }
       }
     }
+    $_SESSION[self::$session_var] = $themes;
+  }
+  static public function findThemeIcon($theme, $context, $icon, $size)
+  {
+    if (isset($_SESSION[self::$session_var][$theme])) {
+      return $_SESSION[self::$session_var][$theme]->FindIcon($context, $icon, $size);
+    }
+    return $_SESSION[self::$session_var][self::$default_theme]->FindIcon($context, $icon, $size);
+  }
+  public function findTheme($theme)
+  {
+    if (isset($_SESSION[self::$session_var][$theme])) {
+      $ret = &$_SESSION[self::$session_var][$theme];
+      return $ret;
+    }
+    return NULL;
   }
 }
 
diff --git a/include/class_SnapShotDialog.inc b/include/class_SnapShotDialog.inc
index bcb494c3c..288e52722 100644
--- a/include/class_SnapShotDialog.inc
+++ b/include/class_SnapShotDialog.inc
@@ -189,7 +189,7 @@ class SnapShotDialog extends plugin
       foreach ($this->last_list as $key => $entry) {
         $actions = "<input type='image' src='images/lists/restore.png' name='RestoreSnapshot_$key'
           class='center' title='"._("Restore snapshot")."'>&nbsp;";
-        $actions .= "<input type='image' src='images/lists/trash.png' name='RemoveSnapshot_$key'
+        $actions .= "<input type='image' src='geticon.php?context=actions&icon=edit-delete&size=16' name='RemoveSnapshot_$key'
           class='center' title='"._("Remove snapshot")."'>&nbsp;";
 
         $time_stamp     = date(_("Y-m-d, H:i:s"), preg_replace("/\-.*$/", "", $entry['gosaSnapshotTimestamp'][0]));
diff --git a/include/class_config.inc b/include/class_config.inc
index ca455a520..419e2e940 100644
--- a/include/class_config.inc
+++ b/include/class_config.inc
@@ -443,6 +443,8 @@ class config  {
       $debugLevel |= $this->data['MAIN']['DEBUGLEVEL'];
     }
     session::global_set('DEBUGLEVEL', $debugLevel);
+
+    IconTheme::loadThemes('themes');
   }
 
 
diff --git a/include/class_listing.inc b/include/class_listing.inc
index 3a153d6c3..e0dc378bc 100644
--- a/include/class_listing.inc
+++ b/include/class_listing.inc
@@ -303,7 +303,7 @@ class listing {
             isset($config['sortType'])) {
           $this->sortAttribute  = $config['sortAttribute'];
           $this->sortType       = $config['sortType'];
-          $sorter = "&nbsp;<img title='".($this->sortDirection[$index]?_("Up"):_("Down"))."' src='images/lists/sort-".($this->sortDirection[$index]?"up":"down").".png' alt='".($this->sortDirection[$index]?_('Sort up'):_('Sort down'))."'>";
+          $sorter = "&nbsp;<img title='".($this->sortDirection[$index]?_("Up"):_("Down"))."' src='geticon.php?context=actions&size=16&icon=view-sort-".($this->sortDirection[$index]?"descending":"ascending")."' alt='".($this->sortDirection[$index]?_('Sort up'):_('Sort down'))."'>";
         }
         $sortable = (isset($config['sortAttribute']));
 
@@ -1141,7 +1141,7 @@ class listing {
 
     /* Draw root button */
     if ($enableRoot) {
-      $result["ROOT"] = "<input class='center' type='image' src='images/lists/root.png' ".
+      $result["ROOT"] = "<input class='center' type='image' src='geticon.php?context=actions&icon=go-first&size=16' ".
                        "title='"._("Go to root department")."' name='ROOT' alt='"._("Root")."'>";
     } else {
       $result["ROOT"] = "<img src='images/lists/root_grey.png' class='center' alt='"._("Root")."'>";
@@ -1149,7 +1149,7 @@ class listing {
 
     /* Draw back button */
     if ($enableBack) {
-      $result["BACK"] = "<input class='center' type='image' src='images/lists/back.png' ".
+      $result["BACK"] = "<input class='center' type='image' src='geticon.php?context=actions&icon=go-up&size=16' ".
                        "title='"._("Go up one department")."' alt='"._("Up")."' name='BACK'>";
     } else {
       $result["BACK"] = "<img src='images/lists/back_grey.png' class='center' alt='"._("Up")."'>";
@@ -1157,14 +1157,14 @@ class listing {
 
     /* Draw home button */
     if ($enableHome) {
-      $result["HOME"] = "<input class='center' type='image' src='images/lists/home.png' ".
-                       "title='"._("Go to users department")."' alt='"._("Home")."' name='HOME'>";
+      $result["HOME"] = "<input class='center' type='image' src='geticon.php?context=actions&icon=go-home&size=16' ".
+                       "title='"._("Go to user's department")."' alt='"._("Home")."' name='HOME'>";
     } else {
       $result["HOME"] = "<img src='images/lists/home_grey.png' class='center' alt='"._("Home")."'>";
     }
 
     /* Draw reload button, this button is enabled everytime */
-    $result["RELOAD"] = "<input class='center optional' type='image' src='images/lists/reload.png' ".
+    $result["RELOAD"] = "<input class='center optional' type='image' src='geticon.php?context=actions&icon=view-refresh&size=16' ".
                        "title='"._("Reload list")."' name='REFRESH' alt='"._("Submit")."'>";
 
     return $result;
@@ -1280,7 +1280,7 @@ class listing {
     $actions  = &$this->xmlData['actionmenu']['action'];
     $result   = "<input type='hidden' name='act' id='actionmenu' value=''><div style='display:none'><input type='submit' name='exec_act' id='exec_act' value=''></div>".
              "<ul class='level1' id='root'><li><a href='#'>"._("Actions")."&nbsp;<img ".
-             "class='center optional' src='images/lists/sort-down.png' alt='down arrow'/></a>";
+             "class='center optional' src='geticon.php?context=actions&icon=view-sort-ascending&size=16' alt='down arrow'/></a>";
 
     // Build ul/li list
     $result .= $this->recurseActions($actions);
@@ -1574,13 +1574,13 @@ class listing {
     if ($read) {
       // Copy entry
       if ($copy) {
-        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"copy\";document.getElementById(\"exec_act\").click();'><img src='images/lists/copy.png' alt='copy' class='center'>&nbsp;"._("Copy")."</a></li>";
+        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"copy\";document.getElementById(\"exec_act\").click();'><img src='geticon.php?context=actions&icon=edit-copy&size=16' alt='copy' class='center'>&nbsp;"._("Copy")."</a></li>";
         $separator = "";
       }
 
       // Cut entry
       if ($cut) {
-        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"cut\";document.getElementById(\"exec_act\").click();'><img src='images/lists/cut.png' alt='cut' class='center'>&nbsp;"._("Cut")."</a></li>";
+        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"cut\";document.getElementById(\"exec_act\").click();'><img src='geticon.php?context=actions&icon=edit-cut&size=16' alt='cut' class='center'>&nbsp;"._("Cut")."</a></li>";
         $separator = "";
       }
     }
@@ -1588,7 +1588,7 @@ class listing {
     // Draw entries that allow pasting entries
     if ($paste) {
       if ($this->copyPasteHandler->entries_queued()) {
-        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"paste\";document.getElementById(\"exec_act\").click();'><img src='images/lists/paste.png' alt='paste' class='center'>&nbsp;"._("Paste")."</a></li>";
+        $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"paste\";document.getElementById(\"exec_act\").click();'><img src='geticon.php?context=actions&icon=edit-paste&size=16' alt='paste' class='center'>&nbsp;"._("Paste")."</a></li>";
       } else {
         $result .= "<li$separator><a href='#'><img src='images/lists/paste-grey.png' alt='paste' class='center'>&nbsp;"._("Paste")."</a></li>";
       }
@@ -1600,6 +1600,7 @@ class listing {
 
   function renderCopyPasteActions($row, $dn, $category, $class, $copy = TRUE, $cut = TRUE)
   {
+    global $config;
     // We can only provide information if we've got a copypaste handler
     // instance
     if (!(isset($this->copyPasteHandler) && is_object($this->copyPasteHandler))) {
@@ -1613,8 +1614,10 @@ class listing {
     // Render cut entries
     if ($cut) {
       if ($ui->is_cutable($dn, $category, $class)) {
-        $result .= "<input class='center' type='image'
-          src='images/lists/cut.png' alt='"._("Cut")."' name='listing_cut_$row' title='"._("Cut this entry")."' style='padding:1px'>";
+        $result .= '<input class="center" type="image"'.
+                    ' src="geticon.php?context=actions&icon=edit-cut&size=16"'.
+                    ' alt="'._('Cut').'" name="listing_cut_'.$row.'" title="'._('Cut this entry').'"'.
+                    ' style="padding:1px">';
       } else {
         $result .= "<img src='images/empty.png' alt=' ' class='center optional' style='padding:1px'>";
       }
@@ -1623,8 +1626,10 @@ class listing {
     // Render copy entries
     if ($copy) {
       if ($ui->is_copyable($dn, $category, $class)) {
-        $result .= "<input class='center' type='image'
-          src='images/lists/copy.png' alt='"._("Copy")."' name='listing_copy_$row' title='"._("Copy this entry")."' style='padding:1px'>";
+        $result .= '<input class="center" type="image"'.
+                    ' src="geticon.php?context=actions&icon=edit-copy&size=16"'.
+                    ' alt="'._('Copy').'" name="listing_copy_'.$row.'" title="'._('Copy this entry').'"'.
+                    ' style="padding:1px">';
       } else {
         $result .= "<img src='images/empty.png' alt=' ' class='center optional' style='padding:1px'>";
       }
@@ -1672,7 +1677,7 @@ class listing {
     $result = "";
 
     // Draw entries
-    $result .= "<li$separator><a href='#'><img class='center' src='images/lists/export.png' alt='export'>&nbsp;"._("Export list")."&nbsp;<img src='images/forward-arrow.png' alt='arrow'></a><ul class='level3'>";
+    $result .= "<li$separator><a href='#'><img class='center' src='geticon.php?context=actions&icon=document-export&size=16' alt='export'>&nbsp;"._("Export list")."&nbsp;<img src='images/forward-arrow.png' alt='arrow'></a><ul class='level3'>";
 
     // Export CVS as build in exporter
     foreach ($this->exporter as $action => $exporter) {
diff --git a/include/class_management.inc b/include/class_management.inc
index ac8a3cf95..e0b5d0b4f 100644
--- a/include/class_management.inc
+++ b/include/class_management.inc
@@ -258,7 +258,7 @@ class management
 
     if (get_object_info() != "") {
       $display = print_header(get_template_path($plIcon), _($plDescription),
-          "<img alt=\"\" class=\"center\" src=\"".get_template_path('images/lists/locked.png')."\">".
+          '<img alt="" class="center" src="geticon.php?context=status&icon=object-locked&size=16"/>'.
           LDAP::fix(get_object_info()));
     } else {
       $display = print_header(get_template_path($plIcon), _($plDescription));
diff --git a/include/class_msg_dialog.inc b/include/class_msg_dialog.inc
index 92ed301ad..91f1fd97a 100644
--- a/include/class_msg_dialog.inc
+++ b/include/class_msg_dialog.inc
@@ -161,7 +161,7 @@ class msg_dialog
       $display .=
         "<table style='width:100%; border:2px solid red;'>
         <tr><td style='vertical-align:top;padding:10px'>
-        <img src='images/error.png' alt='{t}Error{/t}'>
+        <img src='geticon.php?context=status&icon=dialog-error&size=32' alt='{t}Error{/t}'/>
         </td><td style='width:100%'>
         <b>".$this->s_Title."</b><br>
         ".$this->s_Message."<br><br>
diff --git a/include/exporter/class_cvsExporter.inc b/include/exporter/class_cvsExporter.inc
index c5f9e2916..85f4731d7 100644
--- a/include/exporter/class_cvsExporter.inc
+++ b/include/exporter/class_cvsExporter.inc
@@ -90,7 +90,7 @@ class csvExporter
    */
   static function getInfo()
   {
-    return array("exportCVS" => array( "label" => _("CSV"), "image" => "images/lists/csv.png", "class" => "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ));
+    return array("exportCVS" => array( "label" => _("CSV"), "image" => "geticon.php?context=mimetypes&icon=text-csv&size=16", "class" => "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ));
   }
 
 }
diff --git a/include/exporter/class_pdfExporter.inc b/include/exporter/class_pdfExporter.inc
index 86de74a02..df3b529d8 100644
--- a/include/exporter/class_pdfExporter.inc
+++ b/include/exporter/class_pdfExporter.inc
@@ -193,7 +193,7 @@ class pdfExporter
     // Check if class defined
     $classes = get_declared_classes();
     if (in_array('FPDF', $classes)) {
-      return array("exportPDF" => array( "label" => _("PDF"), "image" => "images/lists/pdf.png", "class" => "pdfExporter", "mime" => "application/pdf", "filename" => "export.pdf" ));
+      return array("exportPDF" => array( "label" => _("PDF"), "image" => "geticon.php?context=mimetypes&icon=application-pdf&size=16", "class" => "pdfExporter", "mime" => "application/pdf", "filename" => "export.pdf" ));
     } else {
       return NULL;
     }
diff --git a/include/functions.inc b/include/functions.inc
index bfa289580..c17796a6c 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -223,7 +223,7 @@ function DEBUG($level, $line, $function, $file, $data, $info = "")
   if (session::global_get('DEBUGLEVEL') & $level) {
     if ($first) {
       echo '<div id="debug_handling" class="notice">'.
-            '<img src="images/info_small.png" alt="info icon" style="vertical-align:middle;margin-right:.2em;"/>'.
+            '<img src="geticon.php?context=status&icon=dialog-information&size=22" alt="info icon" style="vertical-align:middle;margin-right:.2em;"/>'.
             'There is some debug output '.
             '<button onClick="javascript:$$(\'div.debug_div\').each(function (a) { a.toggle(); });">Toggle</button>'.
           '</div>';
diff --git a/include/php_setup.inc b/include/php_setup.inc
index 9f6ceb75b..6ccaeffa7 100644
--- a/include/php_setup.inc
+++ b/include/php_setup.inc
@@ -191,21 +191,19 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
                               "\n\n".
                               "*** PHP error information ***\n\n");
 
-    $warning_path = (is_callable('get_template_path') ? get_template_path('images/warning.png') : 'images/warning.png');
-
     $error_collector = '
       <div class="error">
         <table width="100%">
           <tr>
             <td>
-              <img src="'.$warning_path.'" alt="" class="center"/>&nbsp;
+              <img src="geticon.php?context=status&icon=dialog-warning&size=16" alt="" class="center"/>&nbsp;
               <strong style="font-size:14px">'.
                 _("Generating this page caused the PHP interpreter to raise some errors!").'
               </strong>
             </td>
             <td align=right>
               <a href="mailto:bugs@fusiondirectory.org?subject=FusionDirectory%20bugreport&amp;body=%BUGBODY%">
-                <img src="images/mailto.png" title="'._("Send bug report to the FusionDirectory Team").
+                <img src="geticon.php?context=applications&icon=internet-mail&size=16" title="'._("Send bug report to the FusionDirectory Team").
                 '" class="center" alt="'.("Mail icon").'">&nbsp;'._("Send bugreport").'
               </a>
             </td>
diff --git a/include/select/groupSelect/group-filter.tpl b/include/select/groupSelect/group-filter.tpl
index 8df379402..af5fdd80b 100644
--- a/include/select/groupSelect/group-filter.tpl
+++ b/include/select/groupSelect/group-filter.tpl
@@ -16,7 +16,7 @@
   <tr>
    <td>
     <label for="NAME">
-     <img src="images/lists/search.png" align=middle>&nbsp;{t}Name{/t}
+     <img src="geticon.php?context=actions&icon=system-search&size=16" align=middle>&nbsp;{t}Name{/t}
     </label>
    </td>
    <td>
diff --git a/plugins/admin/departments/dep-list.xml b/plugins/admin/departments/dep-list.xml
index 0a40dd6b5..0f43fa30d 100644
--- a/plugins/admin/departments/dep-list.xml
+++ b/plugins/admin/departments/dep-list.xml
@@ -44,7 +44,7 @@
 
     <action>
      <type>sub</type>
-     <image>images/lists/new.png</image>
+     <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
      <label>Create</label>
     </action>
 
@@ -63,7 +63,7 @@
     <action>
       <name>remove</name>
       <type>entry</type>
-      <image>images/lists/trash.png</image>
+      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
       <label>Remove</label>
     </action>
 
@@ -83,7 +83,7 @@
       <name>remove</name>
       <type>entry</type>
       <nospan></nospan>
-      <image>images/lists/trash.png</image>
+      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
       <acl>department[d]</acl>
       <label>Remove</label>
     </action>
diff --git a/plugins/admin/groups/class_groupManagement.inc b/plugins/admin/groups/class_groupManagement.inc
index 4d8dd94ff..e477f72eb 100644
--- a/plugins/admin/groups/class_groupManagement.inc
+++ b/plugins/admin/groups/class_groupManagement.inc
@@ -35,7 +35,7 @@ class groupManagement extends simpleManagement
     return array(
       'plShortName'   => _('Groups'),
       'plDescription' => _('Manage groups'),
-      'plIcon'        => 'plugins/groups/images/icon.png',
+      'plIcon'        => '/fusiondirectory/geticon.php?context=applications&icon=system-users&size=48',
       'plSection'     => 'admin',
       'plManages'     => array('group'),
       'plPriority'    => 2,
diff --git a/plugins/admin/users/class_userManagement.inc b/plugins/admin/users/class_userManagement.inc
index d2de00156..e05803366 100644
--- a/plugins/admin/users/class_userManagement.inc
+++ b/plugins/admin/users/class_userManagement.inc
@@ -51,7 +51,7 @@ class userManagement extends management
     return array(
       'plShortName'   => _('Users'),
       'plDescription' => _('Manage users'),
-      'plIcon'        => 'plugins/users/images/icon.png',
+      'plIcon'        => '/fusiondirectory/geticon.php?context=places&icon=user-identity&size=48',
       'plSection'     => 'admin',
       'plManages'     => array('user'),
       'plPriority'    => 1,
diff --git a/plugins/config/class_configInLdap.inc b/plugins/config/class_configInLdap.inc
index 4ba2a69bc..f115a71b6 100644
--- a/plugins/config/class_configInLdap.inc
+++ b/plugins/config/class_configInLdap.inc
@@ -495,7 +495,7 @@ class configInLdap extends simplePlugin
   static function get_themes()
   {
     $themesdir  = '../ihtml/themes/';
-    $themes     = array_keys(IconTheme::$themes);
+    $themes     = array_keys(session::global_get(IconTheme::$session_var));
     if ($dir = opendir("$themesdir")) {
       while (($file = readdir($dir)) !== FALSE) {
         if (is_dir("$themesdir/$file") && !preg_match("/^\./", $file)) {
-- 
GitLab